ORA-12514: TNS: listener does not currently know of service requested in connect descriptor
2012-08-24 10:55
477 查看
这是个相当恶心的错误,就像癫痫病人一样,不知道什么时候就犯了,好好的用着,吃晚饭再连,就报no listener 起了监听,之后就是这个错误。胡搞一通,不行,重启OK。不知道哪里的问题,因为是测试环境,经常会重启,这个错误就想幽灵一样时出时没。现在的oracle怎么那么难伺候!!烦的多了终于下定决心要找出问题所在,于是在网上阅贴无数,终于找着了能按照一定规律解决问题的方法,就转载了过来
关于这个错误,有很多种情况,我知道有2种情况,以下是网上摘录的:
1、近日在配置Oracle 10G的流复制环境时,遇到一个问题,关闭数据库(shutdown immediate)后,通过SQL Plus连接数据库:conn sys/his@orc0 as sysdba,出现如下错误:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
通过重启服务的方式启动数据库,再次连接却能成功登录,也就是说在关闭数据库状态下无法连接服务器。
开始以为是系统环境变量Oracle_SID的配置问题,因为机器有多个实例,一阵折腾后还是不能连接。后来查资料得知:
Oracle9i以后,后台进程PMON自动在监听器中注册在系统参数SERVICE_NAMES中定义的服务名,SERVICE_NAMES默认为DB_NAME+DOMAIN_NAME。监听配置文件listener.ora中可以不必指定监听的服务名。但是,当数据库处于关闭状态下PMON进程没有启动,也就不会自动注册监听的实例名,所以使用sqlplus sys/his@orc0 as sysdba 会出现ORA-12514错误。
如果在listener.ora文件中指定监听的实例名,则即使数据库处于关闭状态,仍然可以连接。
listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
来源:(http://blog.sina.com.cn/s/blog_4abe7f3a0100g7mm.html) - ORA-12514: TNS: 监听程序当前无法识别连接描述符中_salani_新浪博客
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))
)
)
以上粗体部件为增加的内容,修改后重启监听服务后即可。
附:通过在lsnrctl中输入set display verbose,然后再通过命令service查看,服务状态为READY表示PMON自动注册的服务名,而UNKNOWN则表示该服务是手工在LISTENER.ORA中配置的数据库服务。
2、可能是数据库服务器蹦了,这样的话,光重启服务是不行的,重启机器也无济于事。可以用下面的方法解决。
打开cmd窗口,输入sqlplus / as sysdba;startup,完毕后即恢复正常,执行速度有点慢,耐心等待。
该问题附带错误可能是:
oracle not available
shared memory realm does not exist
上述是我转载的文章,试了一下第一种,成功了。应该是有用的。
关于这个错误,有很多种情况,我知道有2种情况,以下是网上摘录的:
1、近日在配置Oracle 10G的流复制环境时,遇到一个问题,关闭数据库(shutdown immediate)后,通过SQL Plus连接数据库:conn sys/his@orc0 as sysdba,出现如下错误:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
通过重启服务的方式启动数据库,再次连接却能成功登录,也就是说在关闭数据库状态下无法连接服务器。
开始以为是系统环境变量Oracle_SID的配置问题,因为机器有多个实例,一阵折腾后还是不能连接。后来查资料得知:
Oracle9i以后,后台进程PMON自动在监听器中注册在系统参数SERVICE_NAMES中定义的服务名,SERVICE_NAMES默认为DB_NAME+DOMAIN_NAME。监听配置文件listener.ora中可以不必指定监听的服务名。但是,当数据库处于关闭状态下PMON进程没有启动,也就不会自动注册监听的实例名,所以使用sqlplus sys/his@orc0 as sysdba 会出现ORA-12514错误。
如果在listener.ora文件中指定监听的实例名,则即使数据库处于关闭状态,仍然可以连接。
listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
来源:(http://blog.sina.com.cn/s/blog_4abe7f3a0100g7mm.html) - ORA-12514: TNS: 监听程序当前无法识别连接描述符中_salani_新浪博客
(ORACLE_HOME = G:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))
)
)
以上粗体部件为增加的内容,修改后重启监听服务后即可。
附:通过在lsnrctl中输入set display verbose,然后再通过命令service查看,服务状态为READY表示PMON自动注册的服务名,而UNKNOWN则表示该服务是手工在LISTENER.ORA中配置的数据库服务。
2、可能是数据库服务器蹦了,这样的话,光重启服务是不行的,重启机器也无济于事。可以用下面的方法解决。
打开cmd窗口,输入sqlplus / as sysdba;startup,完毕后即恢复正常,执行速度有点慢,耐心等待。
该问题附带错误可能是:
oracle not available
shared memory realm does not exist
上述是我转载的文章,试了一下第一种,成功了。应该是有用的。
相关文章推荐
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- 【ORA报错】ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- “ORA_12514:TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- oracle 10g : ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514:TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- 遭遇ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514 TNSlistener does not currently know of service requested in connect descriptor
- ERROR - ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514:TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- ora-12514:TNS:listener does not currently know of service requested in connect descriptor
- ora-12514:TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514 TNS:listener does not currently know of service requested in connect descriptor
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptor