一次“ora-12170 tns 连接超时”的经历
win7 64位系统
oracle 10g 64位
plsql之前连接是好使的,突然连接不上,提示错误“ora-12170 tns 连接超时”
1、ping IP 没有问题
2、netstat –na 查看1521端口,端口是没有问题的
3、防火墙没问题
4、lsnrctl status 发现 snmp off
解决方法
首先:dba用户登录系统,无法shutdown 报:ora-00106错误:
修改 由于不是rac 是单机,之前的 tnsnames中service_name 是电脑名 ,修改为IP地址
其次:又变成错误 ,增加以下代码(红色字体)解决问题
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.186)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
(SRVR = DEDICATED)
)
)
最后:用DBA用户登录报错误:
ora-12514错误;解决方法如下
打开<OracleHome>/network/adminstener.ora文件,找到:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
2. 添加:
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
3. 最后变成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)
4. 保存文件,重启服务中的TNSListener,OK!