alert.log
Errors in file /app/oracle/admin/racdb/udump/racdb2_ora_479398.trc:
ORA-00600: internal error code, arguments: [4080], [1], [131], [], [], [], [], []
Mon Jul 28 17:04:04 2008
Following on-commit snapshots not refreshed :
user_a.tab_mv
Error 600 trapped in 2PC on transaction 30.14.44852. Cleaning up.
Error stack returned to user:
ORA-00600: internal error code, arguments: [4080], [1], [131], [], [], [], [], []
Mon Jul 28 17:04:04 2008
Errors in file /app/oracle/admin/racdb/udump/racdb2_ora_479398.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [4080], [1], [131], [], [], [], [], []
Mon Jul 28 17:04:04 2008
Trace dumping is performing id=[cdmp_20080728170404]
Mon Jul 28 17:04:08 2008
DISTRIB TRAN racdb.ef0ca214.30.14.44852
is local tran 30.14.44852 (hex=1e.0e.af34)
insert pending collecting tran, scn=8203478254634 (hex=776.0568442a)
Mon Jul 28 17:07:57 2008
Errors in file /app/oracle/admin/racdb/udump/racdb2_ora_729112.trc:
ORA-00600: internal error code, arguments: [4080], [1], [131], [], [], [], [], []
Mon Jul 28 17:07:58 2008
Following on-commit snapshots not refreshed :
user_a.tab_mv
Error 600 trapped in 2PC on transaction 24.19.64795. Cleaning up.
Error stack returned to user:
ORA-00600: internal error code, arguments: [4080], [1], [131], [], [], [], [], []
Mon Jul 28 17:07:58 2008
Errors in file /app/oracle/admin/racdb/udump/racdb2_ora_729112.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [4080], [1], [131], [], [], [], [], []
Mon Jul 28 17:07:58 2008
Trace dumping is performing id=[cdmp_20080728170758]
Mon Jul 28 17:08:02 2008
DISTRIB TRAN racdb.ef0ca214.24.19.64795
is local tran 24.19.64795 (hex=18.13.fd1b)
insert pending collecting tran, scn=8203478282094 (hex=776.0568af6e)
Mon Jul 28 17:19:06 2008
Errors in file /app/oracle/admin/racdb/udump/racdb2_reco_667728.trc:
ORA-03113: end-of-file on communication channel
Mon Jul 28 17:34:06 2008
Errors in file /app/oracle/admin/racdb/udump/racdb2_reco_667728.trc:
ORA-03113: end-of-file on communication channel
Mon Jul 28 17:45:42 2008
GES: Potential blocker (pid=667728) on resource DR-00000000-00000000;
enqueue info in file /app/oracle/admin/racdb/bdump/racdb2_lmd0_688214.trc and DIAG trace file
Mon Jul 28 17:50:07 2008
GES: Potential blocker (pid=770208) on resource TX-000D0024-00014DDC;
enqueue info in file /app/oracle/admin/racdb/udump/racdb2_reco_667728.trc and DIAG trace file
Mon Jul 28 18:53:18 2008
错误分析:
1. Following on-commit snapshots not refreshed :
user_a.tab_mv
说明一个mv 刷新没有完成,并且是 on commit 模式的. 物化视图名称:user_a.tab_mv
2. Error 600 trapped in 2PC on transaction 30.14.44852. Cleaning up.
说明:
有分布式事务产生.
查询查询视图: SELECT * FROM Dba_2pc_Pending;
LOCAL_TRAN_ID NVL(GLOBAL_ORACLE_ID,GLOBAL_TR STATE DECODE(STATUS,‘D‘,‘YES‘,‘NO‘) HEURISTIC_DFLT TRAN_COMMENT FAIL_TIME HEURISTIC_TIME RECO_TIME TOP_OS_USER TOP_OS_TERMINAL TOP_OS_HOST TOP_DB_USER GLOBAL_COMMIT#
---------------------- -------------------------------------------------------------------------------- ---------------- ----------------------------- -------------- -------------------------------------------------------------------------------- ----------- -------------- ----------- ---------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------- ------------------------------ ----------------
30.14.44852 RACDB.ef0ca214.30.14.44852 collecting no 2008-7-28 1 2008-7-28 1 root unknown L02 USER_B 8203478254634
24.19.64795 RACDB.ef0ca214.24.19.64795 collecting no 2008-7-28 1 2008-7-28 1 root unknown L02 USER_B 8203478282094
通过数据库可知 user_a.tab_mv 这个物化视图是通过 user_b 上table 建立的 on commit 物化视图.但是为什么物化视图刷新失败不知原因.
了解应用.发现应用日志错误:
Error in DBB.execProcess( call proce_a(?,?,?,?,?,?,?,?,?)): java.sql.SQLException: 无法从套接字读取更多的数据
Error in DBB.rollback: 无法从套接字读取更多的数据
可知 JAVA SQL 异常.分析可知: 存储过程proce_a 是通过dblink 调用的存储过程, 失败 导致分布式事务挂起,而存储过程正式dml 操作user_b.tab ,
并且user_a.mv 是on commit 方式进行刷新user_b.tab
3. 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.
在加上清除分布式事务:
BEGIN
COMMIT FORCE ‘30.14.44852‘ ;
dbms_transaction.purge_lost_db_entry(‘30.14.44852‘);
END;