Oracle 데이터 파일 손상 복구

http://www.ixdba.net/article/f9/277.html
현장 상황:
    1. 데이터 베 이 스 를 압축 파일 로 만 들 지 않 았 습 니 다.
    2. 데 이 터 는 모두 system 표 공간 에 저 장 됩 니 다.
    3. 백업 하지 않 음
상황:
    운영 체제 가 디스크 때문에 다운 되 어 사용자 가 전원 을 누 르 고 시스템 을 닫 으 면 데이터 베 이 스 를 시작 할 수 없습니다.
처리:
   

SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-12801: error signaled in parallel query server P002
ORA-10562: Error occurred while applying redo to data block (file# 1, block#4568)
ORA-10564: tablespace SYSTEM
ORA-01110: data file 1: '/opt/oracle/oradata/orcl/system01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 576
ORA-00600: internal error code, arguments: [6101]
   

로그 정 보 를 확인 하려 면 다음 과 같 습 니 다.

Mon Nov 19 15:38:50 2007
ALTER DATABASE RECOVER  database  
Mon Nov 19 15:38:50 2007
Media Recovery Start
 parallel recovery started with 3 processes
Mon Nov 19 15:38:50 2007
Recovery of Online Redo Log: Thread 1 Group 3 Seq 16 Reading mem 0
  Mem# 0 errs 0: /opt/oracle/oradata/orcl/redo03.log
Mon Nov 19 15:38:50 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p002_7917.trc:
ORA-00600: internal error code, arguments: [6101], [0], [17], [0], [], [], [], []
Mon Nov 19 15:38:50 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p000_7913.trc:
ORA-00600: internal error code, arguments: [3020], [2], [882], [8389490], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 2, block# 882)
ORA-10564: tablespace UNDOTBS1
ORA-01110: data file 2: '/opt/oracle/oradata/orcl/undotbs01.dbf'
ORA-10560: block type 'KTU UNDO BLOCK'
Mon Nov 19 15:38:51 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p000_7913.trc:
ORA-00600: internal error code, arguments: [3020], [2], [882], [8389490], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 2, block# 882)
ORA-10564: tablespace UNDOTBS1
ORA-01110: data file 2: '/opt/oracle/oradata/orcl/undotbs01.dbf'
ORA-10560: block type 'KTU UNDO BLOCK'
Mon Nov 19 15:38:51 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p002_7917.trc:
ORA-10562: Error occurred while applying redo to data block (file# 1, block# 4568)
ORA-10564: tablespace SYSTEM
ORA-01110: data file 1: '/opt/oracle/oradata/orcl/system01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 576
ORA-00600: internal error code, arguments: [6101], [0], [17], [0], [], [], [], []
Mon Nov 19 15:38:54 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p001_7915.trc:
ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [1658], [6101], [], [], [], []
Mon Nov 19 15:38:54 2007
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p001_7915.trc:
ORA-10562: Error occurred while applying redo to data block (file# 1, block# 1658)
ORA-10564: tablespace SYSTEM
ORA-01110: data file 1: '/opt/oracle/oradata/orcl/system01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 237
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [1658], [6101], [], [], [], []
Mon Nov 19 15:38:54 2007
Media Recovery failed with error 12801
ORA-283 signalled during: ALTER DATABASE RECOVER  database  ...

위의 정보 에서 정 보 를 캡 처 했 습 니 다.

ORA-10562: Error occurred while applying redo to data block (file# 1, block# 1658)

이 오류 에 대해 다음 과 같이 해결 합 니 다.

ORA-10562: Error occurred while applying redo to data block (file# string, block# string)
Cause: See other errors on error stack.
Action: Investigate why the error occurred and how important is the data block. Media and standby database recovery usually can continue if user allows recovery to corrupt this data block。

로그 정보 에서 문 제 를 기본적으로 판단 할 수 있 습 니 다. 다음 과 같 습 니 다.
현재 온라인 로그 가 손상 되 어 undo 스크롤 백 에 문제 가 생 겼 습 니 다. 또한 시스템 이 갑자기 전기 가 떨 어 졌 기 때문에 시스템 표 공간 은 인 스 턴 스 를 다시 시작 한 후에 인 스 턴 스 복 구 를 해 야 합 니 다. 현재 온라인 로그 가 손상 되 어 시스템 표 공간 은 recover 를 할 수 없 기 때문에 위의 오류 가 발생 했 습 니 다.
문 제 를 찾 으 면 방문 을 해결 할 수 있다.
백업 이 없 기 때문에 데이터 베 이 스 는 압축 파일 이 아 닌 모드 에서 실 행 됩 니 다. 따라서 다음 절 차 를 복원 합 니 다.

SQL>startup mount
SQL>recover database using backup controlfile until cancel;
SQL>alter database open resetlogs;
SQL> startup mount
SQL> alter system set “_allow_resetlogs_corruption”=true scope=spfile;
SQL>shutdown immediate
SQL> startup mount
SQL> alter database open resetlogs;
SQL> startup

기본 복구 단계:

SQL>startup mount
SQL>recover database using backup controlfile until cancel;
Cancel
SQL>alter database open resetlogs;
#     system       ,          ,      ,      #    ,oracle     scn    ,       。
#           
SQL> startup mount
SQL> alter system set “_allow_resetlogs_corruption”=true scope=spfile;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
#    ,    sqlplus     
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 16 08:03:43 2007
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>startup

데이터 베 이 스 를 정상적으로 열 고 exp 백업 에 필요 한 데 이 터 를 다시 만 들 고 데 이 터 를 가 져 옵 니 다.
----------------------------------------------------------------------
    이번 조작 을 통 해 저 는 Oracle 문 제 를 처리 할 때 당황 하지 말고 발생 하 는 문제 에 대해 Oracle 의 alert. log 와 trace 파일 을 보고 문제 가 발생 하 는 오 류 를 분석 하고 점차적으로 포 지 셔 닝 한 다음 에 인터넷 에서 검색 하거나 높 은 사람 에 게 물 어 보 는 경험 을 얻 었 습 니 다.

좋은 웹페이지 즐겨찾기