今天一个同事反映说:过程执行的很快,但是在commit的时候卡住了,
本来以为是有可能锁表了,查看了一下没有锁表的事.
看了一下log里面显示
Error stack returned to user:
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:36:44 CST 2012
Errors in file /opt/oracle/app/admin/orcl/udump/orcl_ora_4949.trc:
ORA-00603: ORACLE 服务器会话因致命错误而终止
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:36:47 CST 2012
DISTRIB TRAN ORCL.28a603b4.3.47.39230
is local tran 3.47.39230 (hex=03.2f.993e)
insert pending collecting tran, scn=10741011903732 (hex=9c4.d632f4f4)
Wed Apr 18 10:36:47 CST 2012
DISTRIB TRAN ORCL.28a603b4.3.47.39230
is local tran 3.47.39230 (hex=03.2f.993e))
delete pending collecting tran, scn=10741011903732 (hex=9c4.d632f4f4)
Wed Apr 18 10:39:36 CST 2012
Errors in file /opt/oracle/app/admin/orcl/udump/orcl_ora_4998.trc:
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:39:42 CST 2012
Following on-commit snapshots not refreshed :
ZZSMS.MV_DXDR_USER_RANK3
Error 600 trapped in 2PC on transaction 8.10.43605. Cleaning up.
Error stack returned to user:
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:39:42 CST 2012
Errors in file /opt/oracle/app/admin/orcl/udump/orcl_ora_4998.trc:
ORA-00603: ORACLE 服务器会话因致命错误而终止
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:39:45 CST 2012
DISTRIB TRAN ORCL.28a603b4.8.10.43605
is local tran 8.10.43605 (hex=08.0a.aa55)
insert pending collecting tran, scn=10741011905253 (hex=9c4.d632fae5)
Wed Apr 18 10:39:45 CST 2012
DISTRIB TRAN ORCL.28a603b4.8.10.43605
is local tran 8.10.43605 (hex=08.0a.aa55))
delete pending collecting tran, scn=10741011905253 (hex=9c4.d632fae5)
Wed Apr 18 10:39:57 CST 2012
Errors in file /opt/oracle/app/admin/orcl/udump/orcl_ora_5012.trc:
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:40:02 CST 2012
Following on-commit snapshots not refreshed :
ZZSMS.MV_DXDR_USER_RANK3
Error 600 trapped in 2PC on transaction 5.46.43964. Cleaning up.
Error stack returned to user:
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:40:02 CST 2012
Errors in file /opt/oracle/app/admin/orcl/udump/orcl_ora_5012.trc:
ORA-00603: ORACLE 服务器会话因致命错误而终止
ORA-00600: 内部错误代码, 参数: [4080], [1], [131], [], [], [], [], []
Wed Apr 18 10:40:06 CST 2012
DISTRIB TRAN ORCL.28a603b4.5.46.43964
is local tran 5.46.43964 (hex=05.2e.abbc)
insert pending collecting tran, scn=10741011905424 (hex=9c4.d632fb90)
Wed Apr 18 10:40:06 CST 2012
DISTRIB TRAN ORCL.28a603b4.5.46.43964
is local tran 5.46.43964 (hex=05.2e.abbc))
delete pending collecting tran, scn=10741011905424 (hex=9c4.d632fb90)
错误分析:
1. Following on-commit snapshots not refreshed :
ZZSMS.MV_DXDR_USER_RANK3
说明一个mv 刷新没有完成,并且是 on commit 模式的. 物化视图名称:ZZSMS.MV_DXDR_USER_RANK3
2. Error 600 trapped in 2PC on transaction 30.14.44852. Cleaning up.
说明:
有分布式事务产生.
查询查询视图: SELECT * FROM Dba_2pc_Pending;
通过数据库可知 ZZSMS.MV_DXDR_USER_RANK3
这个物化视图是通过 T_DXDR_USER" "T_DXDR_USER 上table 建立的 on commit 物化视图.但是为什么物化视图刷新失败不知原因.
了解应用.发现应用日志错误:
. ORA-00600: internal error code, arguments: [4080], [1], [131], [], [], [], [], []
查询metalink Doc ID: Note:1385495.8
竟然是个bug , 不允许进行分布式更新表,然后进行on commit 进行刷新.
4. 这就容易解决了. 使用ON DEMAND mv 或者 建立同义词,就不需要物化视图刷新了.(至于当时不用同义词,有其它的原因了.)
5. GES: Potential blocker (pid=770208) on resource TX-000D0024-00014DDC;
GES: Potential blocker (pid=667728) on resource DR-00000000-00000000;
是由于rac 环境引起的.现在也没有好的解决办法.
附录: Doc ID: Note:1385495.8
Bug 1385495 OERI:4080 or STALE data in "ON COMMIT" snapshot if base table updated by DISTRIBUTED transaction
TIP: Click help for a detailed explanation of this page.
Bookmark Go to End
Subject: Support Description of Bug 1385495
Doc ID: Note:1385495.8 Type: PATCH
Last Revision Date: 14-AUG-2003 Status: PUBLISHED
Click here for details of sections in this note.
Bug 1385495 OERI:4080 or STALE data in "ON COMMIT" snapshot if base table updated by DISTRIBUTED transaction
This note gives a brief overview of bug 1385495.
Affects:
Product (Component) Oracle Server (RDBMS)
Range of versions believed to be affected Versions >= 8
Versions confirmed as being affected (None Specified)
Platforms affected Generic (all / most platforms affected)
Fixed:
This issue is fixed in Bug not yet fixed / confirmed as fixed
Symptoms:
Wrong Results
Internal Error may occur (ORA-600)
ORA-600 [4080]
Related To:
XA / Distributed Transactions
Replication
Description
Distributed transactions are not allowed to update
tables which have "ON COMMIT" snapshots / materialized
views on them. In Oracle9i and ORA-600 [4080] is
signalled at commit time. In Oracle8i the materialized
view is not updated and so becomes out of sync with
the master table.
Workaround:
Use ON DEMAND materialized views instead.