读书人

ORA-12514: TNS: 监听程序当前无法识别

发布时间: 2012-07-05 07:59:18 作者: rapoo

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服和oracle not available错误 的解决方法!

我的oracle是装在虚拟机里面的,版本是10.2.0,本来服务是自动启动的,后来,觉得有点占内存就取消了自动启动。修改之后,然后关机重启,然后将服务打开,再以system用户登陆实例orcl,却报以下错误:ORA-12514: TNS:?监听程序当前无法识别连接描述符中请求的服务,谷歌了一下,找出了原因,下面是摘自网络上oracle牛人的解方法:

?

?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)

????(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中配置的数据库服务。

?

oracle ? not ? available错误 的解决方法

偶不是Oracle专家,不说原因了..直接说明怎么解决问题的吧.

1.将oracle的两个必要的服务打开

2.出现监听程序启动成功之后,继续输入: sqlplus /as sysdba

3.连接成功后输入startup

4.出现成功信息后再使用PL/SQL登录,发现登录成功.

?

?

读书人网 >网络基础

热点推荐