前段时间不知道怎么搞得导致OracleOraDb10g_home1TNSListener启动后总是自动停止,开始找了老半天也没找到原因,网上也有好多方法试了都不管用,本都打算重装了,但感觉重装代价太大,而且遇到问题总不能逃避吧,于是在周六早晨又来看看。先看命令:
C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 10.2.0.4.0 - Production on 31-MAY-2014 08:48:53
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting tnslsnr: please wait...
TNSLSNR for 64-bit Windows: Version 10.2.0.4.0 - Production
System parameter file is F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Log messages written to F:\oracle\product\10.2.0\db_1\network\log\listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Mycomputer)(PORT=1521)))
TNS-01155: Incorrectly specified SID_LIST_LISTENER parameter in LISTENER.ORA
NL-00303: syntax error in NV string
Listener failed to start. See the error message(s) above...
上网搜了搜,也没一个确切的答案,最后偶尔看到一个大神说: NL-00303: Syntax error in NV string 解决办法:可能是SID_LIST_LISTENER 中参数设置 错误 或者缺括号等 错误 ,就试着对了下listener.ora里面的括号!!!我靠,果不其然!!!
修改之前:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = root)
(ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)(SID_DESC =
(GLOBAL_DBNAME = root)
(ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
(SID_NAME = root)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = Mycomputer )(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = root)
(ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)(SID_DESC =
(GLOBAL_DBNAME = root)
(ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
(SID_NAME = root)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = Mycomputer )(PORT = 1521))
)
)
究其原因在于(SID_NAME = root)后面少了一个")",什么时候少的也不清楚,我记得没删除过。
不管什么原因了,反正是解决了!!!继续解决下一个问题!