love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

如何处理Ora-00600 [2130]

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: 如何处理Ora-00600 [2130]

昨天有微信好友问到如何处理ora-00600 [2130]错误。对于这个错误,Oracle MoS上有一些文章;但是都是什么Bug之类,不太符合。

我们先来看看对方的问题:

从发的alert log来看,很明显几天前就挂掉了。对方说是归档的,但是之前都能启动,后面居然无法open,这却是有点怪异。

这里暂且不管啥问题吧,单纯的看这个错误;根据我们对Oracle对理解;问题可能出在redo上。

因此这里我仅仅提供了一种思路;重建controlfile,再尝试恢复。最后居然ok了。。。。

这个case就这么结束了。。。。

太过于简短了。我这里补充一点,如何分析和处理ora-00600错误吧?

对于Oracle ora-00600 internal错误来讲,我一般分为两大类:

  1. ora-00600  【函数】
  2. 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
ram/analyze
ram/index

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 司进行专业技术分析并处理!

Leave a Reply

You must be logged in to post a comment.