码迷,mamicode.com
首页 > 其他好文 > 详细

ORA-00600 internal error code, arguments [4080]

时间:2015-04-28 19:01:43      阅读:704      评论:0      收藏:0      [点我收藏+]

标签:oracle   ora   

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;


本文出自 “李鹏飞oracle” 博客,请务必保留此出处http://lipengfei666666.blog.51cto.com/6384154/1639667

ORA-00600 internal error code, arguments [4080]

标签:oracle   ora   

原文地址:http://lipengfei666666.blog.51cto.com/6384154/1639667

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!