ORA-12170: TNS:Connect timeout occurred ORA-06512: at SYS.DBMS_SNAPSHOT
oracle job 无法自动运行 报以下大量的错
errors in file /oracle/admin/orcl/bdump/orcl_j000_2158798.trc:
ora-12012: error on auto execute of job 482
ora-12008: error in materialized view refresh path
ora-12170: tns:connect timeout occurred
ora-06512: at "sys.dbms_snapshot", line 1883
ora-06512: at "sys.dbms_snapshot", line 2089
ora-06512: at "sys.dbms_irefresh", line 683
ora-06512: at "sys.dbms_refresh", line 195
ora-06512: at line 1
sat apr 26 21:57:53 2014
errors in file /oracle/admin/orcl/bdump/orcl_j000_2158798.trc:
ora-12012: error on auto execute of job 425
ora-12170: tns:connect timeout occurred
ora-06512: at "sys.dbms_snapshot", line 1883
ora-06512: at "sys.dbms_snapshot", line 2089
ora-06512: at "sys.dbms_irefresh", line 683
ora-06512: at "sys.dbms_refresh", line 195
主要环境介绍,两个数据库之间要刷新物化视图,平时都是正常的,某天开始主库的自动job执行失败,而且是持续的失败
查看原因主要是ora-12170: tns:connect timeout occurred tns超时所致,排查思路大概可以定在网络上
1.网络排查
在两台主机之间互相ping各自的ip地址和网关,看有无丢包情况
期初查看经查看无丢包
2.查看防火墙1521端口是否正常
网络工程师确认防火墙1521端口正常开放,telnet 1521也是通的
3.tnsping 各自的服务名
$tnsping orcl
tns ping utility for 64-bit aix: version 10.2.0.4.0 - production on 05-6月 -2014 11:47:24
copyright (c) 1997, 2006, oracle corporation. all rights reserved.
attempting to contact (description= (address_list = (address=(protocol=tcp)(host =192.168.10.8)(port = 1521))) (connect_data= (service_name=orcl)))
ok (0 msec)
ok (10 msec)
$tnsping yyzf
tns ping utility for 64-bit aix: version 10.2.0.4.0 - production on 05-6月 -2014 11:48:24
copyright (c) 1997, 2006, oracle corporation. all rights reserved.
attempting to contact (description= (address_list = (address=(protocol=tcp)(host =192.168.11.9)(port = 1521))) (connect_data= (service_name=yyzf)))
ok (0 msec)
ok (10 msec)
tnsping服务名也是ok的
4.到此为止所有网络看似都正常,网络似乎应该不存在问题,但job还是一直是报错,由于两台主机不再同一个网段,ping任务在持续,忽然在某几个时刻有丢包现象,telnet 1521端口也存在某几次不通的现象这么看来网络还是有问题,最后跟客户确认说是有人重新规划过网络,于是查看主机ip和路由
command: ok stdout: yes stderr: no
before command completion, additional instructions may appear below.
routing tables
destination gateway flags refs use if exp groups
route tree for protocol family 2 (internet):
default 192.168.10.1 ug 60 442255197 en0 - - =>
default 192.168.10.254 ug 40 432853407 en0 - -
10.0.0.0 10.0.0.1 uhsb 0 0 en1 - - =>
10/27 10.0.0.1 u 1 11339108 en1 - -
10.0.0.1 127.0.0.1 ughs 0 1840821 lo0 - -
10.0.0.31 10.0.0.1 uhsb 0 10 en1 - -
10.0.1.0 10.0.1.1 uhsb 0 0 en0 - - =>
10.0.1/27 10.0.1.1 u 2 12382572 en0 - -
10.0.1.1 127.0.0.1 ughs 2 3268795 lo0 - -
10.0.1.31 10.0.1.1 uhsb 0 10 en0 - -
127/8 127.0.0.1 u 31 6493884 lo0 - -
192.168.10.0 192.168.10.9 uhsb 0 0 en0 - - =>
192.168.10.0 192.168.10.10 uhsb 0 0 en1 - - =>
192.168.10/27 192.168.10.9 u 0 193565 en0 - - =>
192.168.10/27 192.168.10.10 u 1 209927 en1 - -
192.168.10.9 127.0.0.1 ughs 23 13738093 lo0 - -
192.168.10.10 127.0.0.1 ughs 0 151330 lo0 - -
192.168.10.31 192.168.10.9 uhsb 0 0 en0 - - =>
192.168.10.31 192.168.10.10 uhsb 0 0 en1 - -
route tree for protocol family 24 (internet v6):
::1 ::1 uh 0 0 lo0 - -
这样看来,主机的路由还是存在问题的,主机存在两条默认路由
在aix中如果有默认网关设置多个的话,会存在时断时续的丢包现象,于是进入aix的路由表查看,果然存在两条默认路由,192.168.10.1和192.168.10.254,同一个网卡存在这样两条路由肯定是有问题的,,两条路由的use使用都很高,与网络工程师确认后.254的路由是无效的,存在的原因可能是在之前修改路由的时候忘记***旧的路由导致
于是***废弃的路由
>#route delete -if en0 default 192.168.10.254
192.168.10.254 net default: gateway 192.168.10.254
***路由后,观察一小时,所有job均执行正常,没有再出现tns超时现象
看来,修改生产系统的任何参数都要按照严格的标准和检查流程才行,稳定重于一切
--------------------------------------分割线 --------------------------------------
在CentOS 6.4下安装Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虚拟机中安装步骤
Debian 下 安装 Oracle 11g XE R2
--------------------------------------分割线 --------------------------------------
本文永久更新链接地址:











