日期:2014-05-16  浏览次数:20505 次

ORA-12541: TNS: 无监听程序和监听程序当前无法识别连接描述符中请求的服务

今天安装Oracle 11.2后,发现连接不上,出现了以下几个问题。

1、"conn /as sysdba"后报“已连接到空闲例程”,是因为tnsnames.ora中缺少制定监听。在tnsnames.ora中加入

LISTENER_ORCL =?

?

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

2、加上后没有上面的错误,但又发现使用“conn ljoms/ljoms”可以连接,但加上实例名“conn ljoms/ljoms@orcl”后报“ORA-12541: TNS: 无监听程序”。查了些资料,按照网上提供的方法发现listener.ora中只有

“LISTENER =

? (DESCRIPTION_LIST =

? ? (DESCRIPTION =

? ? ? (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = xcc-PC)(PORT = 1521))

? ? )

? )”缺少SID_LIST_LISTENER,加上

“SID_LIST_LISTENER =

? (SID_LIST =

? ? (SID_DESC =

? ? ? (SID_NAME = ORCL)

? ? ? (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)

? ? ? (PROGRAM = extproc)

? ? ? (ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")

? ? )

? )”,但出现“TNS: 监听程序当前无法识别连接描述符中请求的服务”,这是由于缺少“GLOBAL_DBNAME”导致,修改SID_LIST_LISTENER为

”SID_LIST_LISTENER =

? (SID_LIST =

? ? (SID_DESC=

? ? ?(GLOBAL_DBNAME = ORCL)

? ? ?(ORACLE_HOME =D:\oracle\product\11.2.0\dbhome_1)

? ? ?(SID_NAME = ORCL)

? ? )

? )“,重启lsnrctl。退出数据库连接,在DOS下运行"lsnrctl stop"后运行"lsnrctl start"