1. 문제 발생
- Alert.log에 다음과 같은 에러 발생
ORA-00600: internal error code, arguments: [4193], [], [], [], [], [], [], [], [], [], [], []
2. 문제 확인
- Alert.log에 적힌 trace파일을(예. [SID]_smon_3124_ORA_00600.trc) 확인하면 REDO의 seq와 UNDO의 seq가 다른 것을 확인할 수 있음.
- 주로 정상적으로 Oracle이 종료되지 않았을 때 발생함.
Error 600 in redo application callback
Dump of change vector:
TYP:0 CLS:26 AFN:3 DBA:0x00c021c0 OBJ:4294967295 SCN:0x0001.e1a4aac5 SEQ:2 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 80 spc: 6620 flg: 0x0010 seq: 0x43af rec: 0x0c
xid: 0x0005.018.0004a852
ktubl redo: slt: 24 rci: 0 opc: 5.7 [objn: 0 objd: 0 tsn: 0]
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
0x00000000 prev ctl uba: 0x00c021c0.43af.0a
prev ctl max cmt scn: 0x0001.e1a655f1 prev tx cmt scn: 0x0001.e1a6560a
txn start scn: 0xffff.ffffffff logon user: 0 prev brb: 12591550 prev bcl: 0 BuExt idx: 0 flg2: 0
Block after image is corrupt:
buffer rdba: 0x00c021c0
scn: 0x0001.e1a4aac5 seq: 0x02 flg: 0x04 tail: 0xaac50202
frmt: 0x02 chkval: 0xac21 type: 0x02=KTU UNDO BLOCK
Hex dump of block: st=0, typ_found=1
Dump of memory from 0x000007FF10444000 to 0x000007FF10446000
********************************************************************************
UNDO BLK:
xid: 0x0005.021.0004a7b8 seq: 0x43ab cnt: 0x3f irb: 0x3f icl: 0x0 flg: 0x0000
3. 해결 방안
- UNDO 테이블스페이스 재구성
-- UNDO 확인 SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1 -- DB MOUNT 상태로 변경 SQL> shutdown immediate 데이터베이스가 닫혔습니다. 데이터베이스가 마운트 해제되었습니다. ORACLE 인스턴스가 종료되었습니다. SQL> startup mount ORACLE 인스턴스가 시작되었습니다. Total System Global Area 208769024 bytes Fixed Size 2253776 bytes Variable Size 134220848 bytes Database Buffers 67108864 bytes Redo Buffers 5185536 bytes 데이터베이스가 마운트되었습니다. -- UNDO 관리방법을 수동으로 변경 SQL> alter system set undo_management='MANUAL' scope=spfile; 시스템이 변경되었습니다. -- DB 재시작 SQL> shutdown immediate; 데이터베이스가 닫혔습니다. 데이터베이스가 마운트 해제되었습니다. ORACLE 인스턴스가 종료되었습니다 SQL> startup ORACLE 인스턴스가 시작되었습니다. Total System Global Area 208769024 bytes Fixed Size 2253776 bytes Variable Size 134220848 bytes Database Buffers 67108864 bytes Redo Buffers 5185536 bytes 데이터베이스가 마운트되었습니다. 데이터베이스가 열렸습니다. -- UNDO 관리방법 변경 확인 SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string MANUAL undo_retention integer 900 undo_tablespace string UNDOTBS1 -- 새로운 UNDO 테이블스페이스 생성 SQL> create undo tablespace UNDOTBS_02 datafile 'C:\app\Administrator\oradata\[SID]\UNDOTBS02.DBF' SIZE 500M; 테이블스페이스가 생성되었습니다. -- 새로운 UNDO 테이블스페이스로 변경 SQL> alter system set undo_tablespace='UNDOTBS_02' scope=spfile; 시스템이 변경되었습니다. -- UNDO 관리 방법을 자동으로 변경 SQL> alter system set undo_management='AUTO' scope=spfile; -- DB 재시작 시스템이 변경되었습니다. SQL> shutdown immediate 데이터베이스가 닫혔습니다. 데이터베이스가 마운트 해제되었습니다. ORACLE 인스턴스가 종료되었습니다. SQL> startup ORACLE 인스턴스가 시작되었습니다. Total System Global Area 208769024 bytes Fixed Size 2253776 bytes Variable Size 134220848 bytes Database Buffers 67108864 bytes Redo Buffers 5185536 bytes 데이터베이스가 마운트되었습니다. 데이터베이스가 열렸습니다. -- 기존 UNDO 테이블스페이스 삭제 SQL> drop tablespace UNDOTBS1 including contents and datafiles; 테이블스페이스가 삭제되었습니다.
'Oracle > Admin' 카테고리의 다른 글
[Admin] ORA-01157, ORA-01110 장애 해결 방안 (0) | 2017.03.16 |
---|---|
[Oracle][Admin] SQL을 활용하여 오라클 데이터 파일 축소 작업 (0) | 2017.02.06 |
[Admin] 컨트롤파일, 데이터파일, 리두로그파일 경로 변경 (0) | 2016.11.01 |
온라인 세그먼트 축소 (0) | 2016.07.28 |
Oracle Hot backup 시 scn 확인 (0) | 2015.10.30 |