예전에 index corrupt 났을때 처리했던 부분인데, 대충 기록해놨던것같다.. 아마 2-3년전쯤인거같다.
이 이후 다른 사이트에서 여러 block에대해 corrupt이 났던적이 있는데 백업본도없고.. 테이블 조회자체가 안돼었던적이 있어 dbms_repair로 block skip한 적도 있다 (이부분은 곧 정리해서 올려야겠다.. 사실 이것도 좀 오래돼서 기억이 잘..)
===========================================================
ora-600[kdsgrp1](index/table corrupt/crash) , ora-600[6006](check corrupt and smon kill db)
===========================================================
해당 block 조회 (해당 trace file 의 file_id / block_id 로 조회)
SELECT segment_type, owner, segment_name
FROM dba_extents
WHERE file_id =6
AND 3527454 BETWEEN block_id and block_id+blocks-1;
OR
select object_id, data_object_id, owner, object_name from dba_objects where object_id = 69342 or data_object_id=69342 ;
해당 trace file -16진수 -> 10진수로 계산한 값으로 object 조회
-- https://ko.calcuworld.com/수학/16진법-계산기/
select INDEX_NAME,tablespace_name from dba_indexes where table_name='테이블명' order by INDEX_NAME;
해당 인덱스 체크
ANALYZE TABLE 테이블명 VALIDATE STRUCTURE ONLINE; 해당 테이블에 대한 분석
ANALYZE INDEX 인덱스명 VALIDATE STRUCTURE ONLINE; 해당 테이블에 대한 인덱스 분석
-- ora 600 떨어질 시
해당 인덱스 리빌드 (SE online rebuild 기능 x)
OR
SELECT DBMS_METADATA.GET_DDL('INDEX','인덱스명','소유자명') from dual; -해당 모든 인덱스 ddl 추출
Drop index
Recreate index
===================================
tip. 해당 테이블 analyze 나 인덱스에 대한 작업 이후 지속적인 에러 ora-600[kdsgrp1] ora-600[6006](smon kill db)
가 나타날 시 해당 disk 에 해당 slot 의 corrupt / crash 의 가능성이 있으므로
해당 테이블의 소속 tbs 가아닌 다른 tbs생성 후 Recreate 하는 방법이 있음
===================================
'Oracle' 카테고리의 다른 글
| oracle patch set 작업 (11.2.0.1 to 11.2.0.4) (0) | 2023.07.07 |
|---|---|
| ODA Database 삭제(WEB-console(Mgmt)안될때 - Derby db사용) (0) | 2023.07.07 |
| oracle 9i to 10g upgrade 작업 (0) | 2023.07.04 |
| timestamp 이용하여 테이블 복구(Table recovery using timestamp) (0) | 2023.07.04 |
| log file parallel write wait event (0) | 2023.07.03 |