本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger的Oracle&MySQL技术博客
本文链接地址: 如何处理Ora-00600 [2130]
昨天有微信好友问到如何处理ora-00600 [2130]错误。对于这个错误,Oracle MoS上有一些文章;但是都是什么Bug之类,不太符合。
我们先来看看对方的问题:
Thu Aug 29 16:06:24 2019 Dumping diagnostic data in directory=[cdmp_20190829160624], requested by (instance=1, osid=17282 (CKPT)), summary=[incident=144277]. Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Errors in file /home/u01/app/oracle/diag/rdbms/xyorcl/xyorcl1/trace/xyorcl1_ckpt_17282.trc: ORA-00600: internal error code, arguments: [3719], [], [], [], [], [], [], [], [], [], [], [] CKPT (ospid: 17282): terminating the instance due to error 469 Thu Aug 29 16:06:24 2019 ...... ...... Abort recovery for domain 0 Aborting crash recovery due to error 600 Errors in file /home/u01/app/oracle/diag/rdbms/xyorcl/xyorcl1/trace/xyorcl1_ora_54897.trc: ORA-00600: internal error code, arguments: [2130], [0], [192], [3], [], [], [], [], [], [], [], [] Abort recovery for domain 0 Errors in file /home/u01/app/oracle/diag/rdbms/xyorcl/xyorcl1/trace/xyorcl1_ora_54897.trc: ORA-00600: internal error code, arguments: [2130], [0], [192], [3], [], [], [], [], [], [], [], [] ORA-600 signalled during: ALTER DATABASE OPEN /* db agent *//* {0:9:108} */... Thu Aug 29 16:07:06 2019 Shutting down instance (abort) License high water mark = 34
从发的alert log来看,很明显几天前就挂掉了。对方说是归档的,但是之前都能启动,后面居然无法open,这却是有点怪异。
这里暂且不管啥问题吧,单纯的看这个错误;根据我们对Oracle对理解;问题可能出在redo上。
因此这里我仅仅提供了一种思路;重建controlfile,再尝试恢复。最后居然ok了。。。。
这个case就这么结束了。。。。
太过于简短了。我这里补充一点,如何分析和处理ora-00600错误吧?
对于Oracle ora-00600 internal错误来讲,我一般分为两大类:
- ora-00600 【函数】
- ora-00600 【数字】
ora-00600 [函数] 类分析
对于这种ora-600错误,一般的思路如下:
1) 根据alert log,分析trace,定位call stack(如果存在)
2) 定位触发错误的操作(通常可能是DML,也不排除DDL)
3) 搜索MOS,根据函数定位bug
4) 提交SR,确认bug
5) 如果可以,进行模拟,重新问题。
对于第2种错误的分析;首先需要大家对于这个数字有所了解;其实这方面Oracle internal提供了一篇文章,我这里截取部分供参考:
对于这类型的错误,首先我们需要有一个大概的判断,根据ora-00600之后的 数字进行判断:
1— 2000 Service Layer
Ora-600 Base |
Functionality |
Description |
1 |
vos |
Component notifier |
100 |
vos |
Debug |
300 |
vos |
Error |
500 |
vos |
Lock |
700 |
vos |
Memory |
900 |
vos |
System Parameters |
1100 |
vos |
System State object |
1110 |
vos |
Generic Linked List management |
1140 |
vos |
Enqueue |
1180 |
vos |
Instance Locks |
1200 |
vos |
User State object |
1400 |
vos |
Async Msgs |
1700 |
vos |
license Key |
1800 |
vos |
Instance Registration |
1850 |
vos |
I/O Services components |
vos:Virtual Operating System
2000—4000 Cache Layer
Ora-600 Base |
Functionality |
Description |
2000 |
server/rcv |
Cache Op |
2100 |
server/rcv |
Control File mgmt |
2200 |
server/rcv |
Misc (SCN etc.) |
2400 |
server/rcv |
Buffer Instance Hash Table |
2600 |
server/rcv |
Redo file component |
2800 |
server/rcv |
Db file |
3000 |
server/rcv |
Redo Application |
3200 |
server/cache |
Buffer manager |
3400 |
server/rcv |
Archival & media recovery component |
3600 |
server/rcv |
recovery component |
3700 |
server/rcv |
Thread component |
3800 |
server/rcv |
Compatibility segment |
Note : rcv indicates recovery. It is important to remember that the Oracle cache layer is effectively going through
the same code paths as used by the recovery mechanism
4000 —6000 Transaction Layer
Ora-600 Base |
Functionality |
Description |
4000 |
server/txn |
Transaction Undo |
4100 |
server/txn |
Transaction Undo |
4210 |
server/txn |
Transaction Parallel |
4250 |
server/txn |
Transaction List |
4300 |
space/spcmgmt |
Transaction Segment |
4400 |
txn/lcltx |
Transaction Control |
4450 |
txn/lcltx |
distributed transaction control |
4500 |
txn/lcltx |
Transaction Block |
4600 |
space/spcmgmt |
Transaction Table |
4800 |
dict/rowcache |
Query Row Cache |
4900 |
space/spcmgmt |
Transaction Monitor |
5000 |
space/spcmgmt |
Transaction Extent |
这个类错误,我们可能通常是会遇到坏块的,当然也可能是逻辑性的不一致。这种情况下,可能需要参考:
Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g (Doc ID 28814.1)
6000 —-12000 Data Layer
Ora-600 Base |
Functionality |
Description |
6000 |
ram/data |
data, analyze command and index related activity |
7000 |
ram/object |
lob related errors |
8000 |
ram/data |
general data access |
8110 |
ram/index |
index related |
8150 |
ram/object |
general data access |
更多详细信息,请参考:ORA-600 Lookup Error Categories (Doc ID 175982.1)
总的来说,对于ora-00600错误,一般来说都比较严重,需要深入分析;建议联系Oracle 原厂或Oracle 司进行专业技术分析并处理!