ORA-02019的处理(转载于kasaur的个人空间http://space.itpub.net/25618347)
2013-07-18 09:48
323 查看
今天早上过来,查看测试库的告警日志发现,一直不断的报错:ORA-02019,具体如下:
alert输出如下:
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:18:46 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:19:34 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:20:47 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:22:35 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:25:17 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
对应的trace文件内容如下:
[oracle@testdb ~]$ more /oracle/admin/UAT/bdump/uat_reco_16233.trc
/oracle/admin/UAT/bdump/uat_reco_16233.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/10.2.0/db_1
System name: Linux
Node name: testdb
Release: 2.6.18-128.el5
Version: #1 SMP Wed Dec 17 11:41:38 EST 2008
Machine: x86_64
Instance name: UAT
Redo thread mounted by this instance: 1
Oracle process number: 5
Unix process pid: 16233, image:oracle@testdb(RECO)
*** SERVICE NAME:(SYS$BACKGROUND) 2012-02-13 10:18:13.429
*** SESSION ID:(1096.3) 2012-02-13 10:18:13.429
*** 2012-02-13 10:18:13.429
ERROR, tran=7.27.49932, session#=1, se=0:
ORA-02019: connection description for remote database not found
*** 2012-02-13 10:18:46.453
初步判断以为是db-link问题,到数据库里查询,并没有这个db-link,仔细观察trace文件可以发现,这是个oracle的后台进程(RECOVER进程),会话ID是1096,进一步观察不难发现,应该是oracle的RECOVER进程要恢复一个transaction,其事务号:7.27.49932,而需要被恢复的数据库连接名不正确,只要数据库开启状态,该进程就会一直尝试进行恢复,所以alert中会不断的出现该错误,最后查询metalink,有如下解释:
When a failure occurs during commit processing, automatic recovery will
consistently resolve the results at all sites involved in the
transaction. However, if the remote database is destroyed or
recreated before recovery completes, then the entries used to
control recovery in DBA_2PC_PENDING and associated tables will never
be removed, and recovery will periodically retry. Procedure
purge_lost_db_entry allows removal of such transactions from the local site.
查询对应视图发现:
SELECT LOCAL_TRAN_ID,global_tran_id,STATE, MIXED,to_char(FAIL_TIME,'yyyy-mm-dd hh24:mi:ss')FAIL_TIME,
to_char(RETRY_TIME,'yyyy-mm-dd hh24:mi:ss')Retry_Time
FROM DBA_2PC_PENDING;
7.27.49932 UAT.bb70863a.7.27.49932 collecting no 2011-09-29 18:23:40 2012-02-13 10:58:13
有问题的db-link 就是上面红色部分,该事务第1次失败时间是:2011-09-29 18:23:40
最近的尝试时间是:2012-02-13 10:58:13
此问题不影响测试数据库的正常运行,可以忽略。
如需要解决,不再报错,可以强制移掉此事务来解决。方法如下:
execute sys.dbms_transaction.purge_lost_db_entry('<local_tran_id>');
执行完上面的语句后再观察alert,这个错误终于消失了。
[oracle@testdb ~]$ tail -f /oracle/admin/UAT/bdump/alert_UAT.log
ORA-02019: connection description for remote database not found
Mon Feb 13 10:47:29 CST 2012
Thread 1 advanced to log sequence 9006 (LGWR switch)
Current log# 3 seq# 9006 mem# 0: /oracle/oradata/UAT/redo03.log
Mon Feb 13 10:47:37 CST 2012
Thread 1 advanced to log sequence 9007 (LGWR switch)
Current log# 1 seq# 9007 mem# 0: /oracle/oradata/UAT/redo01.log
Mon Feb 13 10:58:13 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 11:08:30 CST 2012
ALTER SYSTEM ARCHIVE LOG
Mon Feb 13 11:08:30 CST 2012
Thread 1 advanced to log sequence 9008 (LGWR switch)
Current log# 5 seq# 9008 mem# 0: /oracle/oradata/UAT/redo05.log
Mon Feb 13 11:09:14 CST 2012
Thread 1 advanced to log sequence 9009 (LGWR switch)
Current log# 6 seq# 9009 mem# 0: /oracle/oradata/UAT/redo06.log
alert输出如下:
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:18:46 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:19:34 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:20:47 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:22:35 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 10:25:17 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
对应的trace文件内容如下:
[oracle@testdb ~]$ more /oracle/admin/UAT/bdump/uat_reco_16233.trc
/oracle/admin/UAT/bdump/uat_reco_16233.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/10.2.0/db_1
System name: Linux
Node name: testdb
Release: 2.6.18-128.el5
Version: #1 SMP Wed Dec 17 11:41:38 EST 2008
Machine: x86_64
Instance name: UAT
Redo thread mounted by this instance: 1
Oracle process number: 5
Unix process pid: 16233, image:oracle@testdb(RECO)
*** SERVICE NAME:(SYS$BACKGROUND) 2012-02-13 10:18:13.429
*** SESSION ID:(1096.3) 2012-02-13 10:18:13.429
*** 2012-02-13 10:18:13.429
ERROR, tran=7.27.49932, session#=1, se=0:
ORA-02019: connection description for remote database not found
*** 2012-02-13 10:18:46.453
初步判断以为是db-link问题,到数据库里查询,并没有这个db-link,仔细观察trace文件可以发现,这是个oracle的后台进程(RECOVER进程),会话ID是1096,进一步观察不难发现,应该是oracle的RECOVER进程要恢复一个transaction,其事务号:7.27.49932,而需要被恢复的数据库连接名不正确,只要数据库开启状态,该进程就会一直尝试进行恢复,所以alert中会不断的出现该错误,最后查询metalink,有如下解释:
When a failure occurs during commit processing, automatic recovery will
consistently resolve the results at all sites involved in the
transaction. However, if the remote database is destroyed or
recreated before recovery completes, then the entries used to
control recovery in DBA_2PC_PENDING and associated tables will never
be removed, and recovery will periodically retry. Procedure
purge_lost_db_entry allows removal of such transactions from the local site.
查询对应视图发现:
SELECT LOCAL_TRAN_ID,global_tran_id,STATE, MIXED,to_char(FAIL_TIME,'yyyy-mm-dd hh24:mi:ss')FAIL_TIME,
to_char(RETRY_TIME,'yyyy-mm-dd hh24:mi:ss')Retry_Time
FROM DBA_2PC_PENDING;
7.27.49932 UAT.bb70863a.7.27.49932 collecting no 2011-09-29 18:23:40 2012-02-13 10:58:13
有问题的db-link 就是上面红色部分,该事务第1次失败时间是:2011-09-29 18:23:40
最近的尝试时间是:2012-02-13 10:58:13
此问题不影响测试数据库的正常运行,可以忽略。
如需要解决,不再报错,可以强制移掉此事务来解决。方法如下:
execute sys.dbms_transaction.purge_lost_db_entry('<local_tran_id>');
执行完上面的语句后再观察alert,这个错误终于消失了。
[oracle@testdb ~]$ tail -f /oracle/admin/UAT/bdump/alert_UAT.log
ORA-02019: connection description for remote database not found
Mon Feb 13 10:47:29 CST 2012
Thread 1 advanced to log sequence 9006 (LGWR switch)
Current log# 3 seq# 9006 mem# 0: /oracle/oradata/UAT/redo03.log
Mon Feb 13 10:47:37 CST 2012
Thread 1 advanced to log sequence 9007 (LGWR switch)
Current log# 1 seq# 9007 mem# 0: /oracle/oradata/UAT/redo01.log
Mon Feb 13 10:58:13 CST 2012
Errors in file /oracle/admin/UAT/bdump/uat_reco_16233.trc:
ORA-02019: connection description for remote database not found
Mon Feb 13 11:08:30 CST 2012
ALTER SYSTEM ARCHIVE LOG
Mon Feb 13 11:08:30 CST 2012
Thread 1 advanced to log sequence 9008 (LGWR switch)
Current log# 5 seq# 9008 mem# 0: /oracle/oradata/UAT/redo05.log
Mon Feb 13 11:09:14 CST 2012
Thread 1 advanced to log sequence 9009 (LGWR switch)
Current log# 6 seq# 9009 mem# 0: /oracle/oradata/UAT/redo06.log
相关文章推荐
- regonly1的个人空间 http://space.itpub.net/12932950
- 【转】WebSphere Process Server 新手入门 - CloudSpace的个人空间 - ITPUB个人空间 - powered by X-Space
- listener.ora--sqlnet.ora--tnsnames.ora的关系以及手工配置举例(转载:http://blog.chinaunix.net/uid-83572-id-5510.ht)
- Oracle故障处理:ORA-30041 无法在表空间上授予限额
- ORA-25153: Temporary Tablespace is Empty 错误处理
- 手工建库后表空间数据文件非自动扩展引起的错误:ORA-01653: unable to extend* in tablespace*
- ASM磁盘组空间不足--ORA-15041:DISGROUP DATA space exhausted (生产库案例)
- ASM磁盘组空间不足--ORA-15041:DISGROUP DATA space exhausted (生产库案例)
- Ubuntu 9.04 gedit打开txt文件乱码_widebright的个人空间(转载)
- 处理ora-00312的错误(磁盘空间导致00312错误)
- mysql查看数据库和表的占用空间大小 作者:@狮子XL 本文为作者原创,转载请注明出处:http://www.cnblogs.com/iiiiher/p/5853133.html 目录 mysq
- listener.ora--sqlnet.ora--tnsnames.ora的关系以及手工配置举例(转载:http://blog.chinaunix.net/uid-83572-id-5510.ht)
- ora-01652:无法通过128(在表空间space中)扩展temp段解决
- 回滚段表空间损坏处理(ORA-01552)
- 动态表单——个人心得,转载请注明出处:http://blog.csdn.net/coolwzjcool
- 通过10g新特性得到PGA的调整建议【转自http://space.itpub.net/519536 】
- SupeSite 6.0/X-Space 4.0 个人空间数据整合导入后,页面风格未定义
- 解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程(转载)
- ORA-01552: 非系统表空间 'USERS' 不能使用系统回退段的处理
- 开新空间http://www.9longjiang.cn/space.php?uid=7