下面是方法是从网上收集到的,这里整理给大家使用(已测试安装成功)
Oracle 10G 关闭数据库(shutdown immediate )后,通过SQL Plus 连接数据库:conn sys/his@orc0 as sysdba ,出现如下错误:
ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务
通过重启服务的方式启动数据库,再次连接却能成功登录,也就是说在关闭数据库状态下无法连接服务器。
原因:
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))
)
)
以上粗体部件为增加的内容,修改后重启监听服务后即可。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11312660/viewspace-714702/ ,如需转载,请注明出处,否则将追究法律责任。