이 방법은 백업으로 복구가 불가능 할경우 최대한 마지막 방법 입니다. 오라클 권고 사항은 절대 아닙니다. 


Data block이나 Index block이 corruption으로 인해 startup이 되지
않거나 어떤 object를 select못할 경우에 다음과
같은 event를 사용 합니다.

 


10210
:
Check Data block integrity


  이 event를 지정하면 kernel이 강제적으로 data block에 대한 integrity check를 하도록 한다. 이 event를 지정하면 data
block
이 Disk에서 Cache로 읽혀질 때 check를 한다. 만약 corrupt가 발생 했다면, ORA-600 error를
발생 시키고, 해당 block에 corrupted
block
이라는 mark를 한다(sequence number를 0).  이 event를 지정하면
performance
의 5~10%가 감소  된다.


10211
:
Check Index block integrity


  이 event는 index block에
대한 integrity
check
를 하도록 한다.


10231
:
Skip corrupted block on << table scan
>>


  이 event를 지정하면 scan시 corrupted
block
을 skip한다. 그리고 trace
file
을 생성한다.


10232
:
Dump corrupted blocks symbolically gotten by
<<kcbget>>


  Corrupted Block에 대한 정보를 Dump한다.


 


 

Block corrupt의
대표적인 error는
ORA-00600[3398], ORA-00600[4519], ORA-00600[3339]
이다.  만약
ORA-00600[3398]
이 발생 했다고
가정하면

우선 init.ora에 아래의 event를 지정합니다.


  event=”10210 trace name context forever,
level 10″

  event=”10211 trace name context forever,
level 10″


 이후 database를 startup한 후에 trace가 발생하면 어떤 object가 error인지를 파악할 수
있습니다. 만약 table이 error일 경우에는


                  event=”10231
trace name context forever, level 10″


을 지정하고 해당 table을 export받은 후에 drop을 하고
다시 import하면 됩니다.


만약 index일 경우에는 해당 index를 drop한 후에 재생성
하면 됩니다.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다