ORA-12170引发的ORA-3136所导致的数据库问题
2009-10-12 10:52
531 查看
环境:
ORACLE RDBMS Version: 11.1.0.6.0 + Windows 2003
问题描述:
10月9号,长假归来第一天,公司开发库数据库无法进入,当时没有查看日志文件,也没看ora-报错号,直接重启数据库了(这次解决问题的方法不正确!)。
10月12号上午8:30到公司又发现数据库无法登陆,登陆报ORA-3136错误。下定决心查看到底什么问题。
解决过程:
重启后启动数据库,打开日志文件,11g的日志文件存放与10g又不一样,有一个参数diagnostic_dest控制,定位该日志文件,发现在9号与12号之间有大量重复的报错信息:
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 11.1.0.6.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 11.1.0.6.0 - Production
Time: 09-10月-2009 08:55:20
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS: 操作超时
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.8)(PORT=3208))
WARNING: inbound connection timed out (ORA-3136)
Fri Oct 09 08:55:23 2009
Completed: alter database open
Fri Oct 09 08:55:36 2009
网上查看相关资料,是和网络连接相关的错误,metalink提出的解决方案是:
1. set INBOUND_CONNECT_TIMEOUT_<listenername>=0 in listener.ora
2. set SQLNET.INBOUND_CONNECT_TIMEOUT = 0 in sqlnet.ora of server.
其中修改listener的inbound_connect_timeout参数的方法有二种(我采用的第一种方式):
第一种:
C:/>lsnrctl
LSNRCTL for 32-bit Windows: Version 11.1.0.6.0 - Production on 12-10月-2009 10:1
6:57
Copyright (c) 1991, 2007, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> help
以下操作可用
星号 (*) 表示修改符或扩展命令:
start stop status
services version reload
save_config trace change_password
quit exit set*
show*
LSNRCTL> show
show之后提供了以下操作
星号 (*) 表示修改符或扩展命令:
rawmode displaymode
rules trc_file
trc_directory trc_level
log_file log_directory
log_status current_listener
inbound_connect_timeout startup_waittime
snmp_visible save_config_on_stop
dynamic_registration
LSNRCTL> show inbound_connect_timeout
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "inbound_connect_timeout" 设为 60
命令执行成功
LSNRCTL> set inbound_connect_timeout 0
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "inbound_connect_timeout" 设为 0
命令执行成功
LSNRCTL> show inbound_connect_timeout
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "inbound_connect_timeout" 设为 0
命令执行成功
LSNRCTL> set save_config_on_stop on #指定在一个lsnrctl会话期内所发生的修改在退出时是否应该被保存起来,下次监听启动也是生效的 on 保存 off 不保存
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "save_config_on_stop" 设为 ON
命令执行成功
LSNRCTL> exit
第二种:
修改listener.ora文件,加入: INBOUND_CONNECT_TIMEOUT_LISTENER_NAME=0
修改好了,过几天再查看下有没有该问题存在,(*^__^*)…嘻嘻
网上资料:
Oracle10gR2 ORA-3136 错误解决http://www.eygle.com/archives/2006/07/sqlnet_inbound_connect_timeout.html
http://blog.chinaunix.net/u1/50863/showart_410003.html
ORA-12518: TNS: 监听程序无法分发客户机
http://www.itpub.net/viewthread.php?tid=521086&extra=&page=1
lsnrctl 使用详解
http://hi.baidu.com/gaobonm/blog/item/b5c383821acd0eb66c8119d8.html
相关参数说明:
INBOUND_CONNECT_TIMEOUT
Use the INBOUND_CONNECT_TIMEOUT parameter to specify how long the Oracle Connection Manager listener waits for a valid connection from a client or another instance of Oracle Connection Manager. This parameter accepts the following values:
60 (default) to disable the timeout
n>0 to enable the timeout, where n equals the timeout period in seconds
ORACLE RDBMS Version: 11.1.0.6.0 + Windows 2003
问题描述:
10月9号,长假归来第一天,公司开发库数据库无法进入,当时没有查看日志文件,也没看ora-报错号,直接重启数据库了(这次解决问题的方法不正确!)。
10月12号上午8:30到公司又发现数据库无法登陆,登陆报ORA-3136错误。下定决心查看到底什么问题。
解决过程:
重启后启动数据库,打开日志文件,11g的日志文件存放与10g又不一样,有一个参数diagnostic_dest控制,定位该日志文件,发现在9号与12号之间有大量重复的报错信息:
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 11.1.0.6.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 11.1.0.6.0 - Production
Time: 09-10月-2009 08:55:20
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS: 操作超时
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.8)(PORT=3208))
WARNING: inbound connection timed out (ORA-3136)
Fri Oct 09 08:55:23 2009
Completed: alter database open
Fri Oct 09 08:55:36 2009
网上查看相关资料,是和网络连接相关的错误,metalink提出的解决方案是:
1. set INBOUND_CONNECT_TIMEOUT_<listenername>=0 in listener.ora
2. set SQLNET.INBOUND_CONNECT_TIMEOUT = 0 in sqlnet.ora of server.
其中修改listener的inbound_connect_timeout参数的方法有二种(我采用的第一种方式):
第一种:
C:/>lsnrctl
LSNRCTL for 32-bit Windows: Version 11.1.0.6.0 - Production on 12-10月-2009 10:1
6:57
Copyright (c) 1991, 2007, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> help
以下操作可用
星号 (*) 表示修改符或扩展命令:
start stop status
services version reload
save_config trace change_password
quit exit set*
show*
LSNRCTL> show
show之后提供了以下操作
星号 (*) 表示修改符或扩展命令:
rawmode displaymode
rules trc_file
trc_directory trc_level
log_file log_directory
log_status current_listener
inbound_connect_timeout startup_waittime
snmp_visible save_config_on_stop
dynamic_registration
LSNRCTL> show inbound_connect_timeout
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "inbound_connect_timeout" 设为 60
命令执行成功
LSNRCTL> set inbound_connect_timeout 0
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "inbound_connect_timeout" 设为 0
命令执行成功
LSNRCTL> show inbound_connect_timeout
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "inbound_connect_timeout" 设为 0
命令执行成功
LSNRCTL> set save_config_on_stop on #指定在一个lsnrctl会话期内所发生的修改在退出时是否应该被保存起来,下次监听启动也是生效的 on 保存 off 不保存
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 参数 "save_config_on_stop" 设为 ON
命令执行成功
LSNRCTL> exit
第二种:
修改listener.ora文件,加入: INBOUND_CONNECT_TIMEOUT_LISTENER_NAME=0
修改好了,过几天再查看下有没有该问题存在,(*^__^*)…嘻嘻
网上资料:
Oracle10gR2 ORA-3136 错误解决http://www.eygle.com/archives/2006/07/sqlnet_inbound_connect_timeout.html
http://blog.chinaunix.net/u1/50863/showart_410003.html
ORA-12518: TNS: 监听程序无法分发客户机
http://www.itpub.net/viewthread.php?tid=521086&extra=&page=1
lsnrctl 使用详解
http://hi.baidu.com/gaobonm/blog/item/b5c383821acd0eb66c8119d8.html
相关参数说明:
INBOUND_CONNECT_TIMEOUT
Use the INBOUND_CONNECT_TIMEOUT parameter to specify how long the Oracle Connection Manager listener waits for a valid connection from a client or another instance of Oracle Connection Manager. This parameter accepts the following values:
60 (default) to disable the timeout
n>0 to enable the timeout, where n equals the timeout period in seconds
SQLNET.INBOUND_CONNECT_TIMEOUT parameter in sqlnet.ora on the database server | Specify the time, in seconds, for a client to connect with the database server and provide the necessary authentication information. If the client fails to establish a connection and complete authentication in the time specified, then the database server terminates the connection. In addition, the database server logs the IP address of the client and an ORA-12170: TNS:Connect timeout occurred error message to the sqlnet.log file. The client receives either an ORA-12547: TNS:lost contact or an ORA-12637: Packet receive failed error message. |
相关文章推荐
- Oracle:不同数据库版本导致的Ora-00918问题
- 由 BUG 引发 ORA-15064 进而导致数据库实例意外中止
- ORA-04031导致数据库宕机问题分析
- Windows7蓝屏导致Oracle回滚段损坏(ORA-01115和ORA-27070)数据库无法启动的问题处理
- ASM路径问题导致数据库不能正常启动 -- 报:ORA-03113: end-of-file on communication channel
- oracle 11gR2数据库,1521端口未开启和sid问题,导致报错,错误代码:ora:12505,解决办法,
- ORA-01078,LRM-00109参数文件问题,导致数据库无法启动
- 因信号量问题导致ORA-27154无法启动数据库
- ORA-01033问题-数据库未打开
- 解决数据库字段导致的下拉列表回显失效问题
- Oracle10G 连接11G数据库,出现ORA -1017用户名/口令无效; 登录被拒绝 的问题
- 一个查询交易导致数据库CPU使用率高的问题
- DG不能自动mount导致数据库不能正常启动:ORA-01157、ORA-01110、ORA-17503、ORA-15001、ORA-15001
- 解决因数据库一次查询数据量过大导致的内存溢出问题
- ThinkPHP 中 M 方法查询数据库最后使用 find() 导致返回结果集 foreach 数据不对的问题
- 解决误删datafile导致数据库无法启动的问题
- Windows7旗舰版安装PLSQLDeveloper连接数据库遇到:ora-12514 问题和ORA-12545:因目标主机或对象不存在,连接失败”解决方法
- 关于11g rhel6 11.2.0.3.0 rac VIP failover back ping不通的问题 ORA-12170
- java Integer自动拆箱引发的NPE以及常量池导致的判等问题[-128 127]为常量池
- 误用Connection.setAutoCommit导致的数据库死锁问题