在有网络的情况下配置的监听如果在无网络的情况下启动,并通过tns连接数据库时会报:listener does not currently know of SID given in connect descriptor 异常,反之,在没有网络的情况下配置的监听如果在有网络的情况下启动,用tns连接时也会异常,为了解决在上述问题,可以找到oracle的监听配置文件:E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora ,将文件的内容修改为:
# listener.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = e:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
此后不管是有网络还是断开网络,都可以用tns连接到本地的oracle 数据库。