Oacle 데이터베이스 redolog 의 모든 잃 어 버 린 복구 기록

5325 단어 Oacleora-600recover
redolog 상태 보기
$ sqlplus / as sysdba
SQL> select GROUP#, STATUS from v$log;

    GROUP# STATUS
---------- ----------------
     1 CLEARING
     3 INACTIVE
     2 CURRENT

redolog 가 모두 잃 어 버 린 상황 에서 숨겨 진 파 라 메 터 를 사용 하여 open resetlogs 방식 으로 데이터 베 이 스 를 열 려 고 합 니 다.
SQL> alter system set "_allow_resetlogs_corruption"=TRUE scope=spfile;
SQL> shutdown immediate;
SQL> startup mount;
SQL> recover database using backup controlfile until cancel;

다음 알림 이 나타 납 니 다:
ORA-00279: change 70615250 generated at 01/04/2015 08:13:02 needed for thread 1
ORA-00289: suggestion :
/u01/oracle/fast_recovery_area/HLS/archivelog/2015_01_07/o1_mf_1_248_%u_.arc
ORA-00280: change 70615250 for thread 1 is in sequence #248


Specify log: {=suggested | filename | AUTO | CANCEL}
cancel  alter database open resetlogs; 

ORA-600 2662 오류 가 발생 했 습 니 다.
위의 alter database open resetlogs 를 실행 한 후.다음 오류 발생:
alter database open resetlogs
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [2662], [0], [70615260], [0],
[70887210], [12583040], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [2662], [0], [70615259], [0],
[70887210], [12583040], [], [], [], [], [], []
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [0], [70615257], [0],
[70887210], [12583040], [], [], [], [], [], []
Process ID: 21448
Session ID: 1 Serial number: 5

metalink,ORA-600[2662]의 의 미 를 조회 하면'Block SCN is ahead of Current SCN'이다.이곳 에서 BLOCK SCN 은 70887210 이 고 CURRENT SCN 은 70615257 으로 볼 수 있 으 며 BLOCK SCN 은 CURRENT SCN 보다 약간 크다.metalink 글 ORA-600[2662]'Block SCN is ahead of Current SCN'(문서 ID 28929.1)에 따 르 면 BLOCK SCN 과 CURRENT SCN 의 차이 가 크 지 않 은 상황 에서 반복 적 으로 데이터 베 이 스 를 정지 하 는 방식 으로 데이터 베 이 스 를 CURRENT SCN 을 앞으로 추천 하고 CURRENT SCN 이 BLOCK SCN 보다 크 면 데이터 베 이 스 를 여 는 조건 에 부합 할 수 있다.
다음 과정 을 몇 번 반복 하면 데이터 베 이 스 를 정상적으로 열 수 있다.
[oracle@hls dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Jan 7 14:21:39 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size          2260088 bytes
Variable Size         436208520 bytes
Database Buffers      624951296 bytes
Redo Buffers            5517312 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [0], [70675277], [0],
[70887210], [12583040], [], [], [], [], [], []
Process ID: 21704
Session ID: 1 Serial number: 5


SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@hls dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Jan 7 14:22:23 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size          2260088 bytes
Variable Size         436208520 bytes
Database Buffers      624951296 bytes
Redo Buffers            5517312 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [0], [70695282], [0],
[70887210], [12583040], [], [], [], [], [], []
Process ID: 21755
Session ID: 1 Serial number: 5


SQL> exit

데이터 내 보 내기
위 는 Oacle 의 숨겨 진 파 라 메 터 를 사용 하여 데이터 베 이 스 를 일치 하지 않 는 조건 에서 열 었 습 니 다.데이터베이스 에 일치 하지 않 는 부분 이 많 을 수 있 습 니 다.데이터 베 이 스 를 사용 하 는 과정 에서 문제 가 발생 하지 않도록 데이터 베 이 스 를 열 면 데 이 터 를 내 보 낸 다음 에 다시 만 든 데이터베이스 에 가 져 와 야 합 니 다.
데이터베이스 에 사 용 된 SCHEMA 는 다음 과 같 습 니 다.
USERNAME
------------------------------
HLS_TEXT
HLS_0628
HLS_0805
CF_TEST
HLS_DEMO
HLS_0729
HLS_TEST
HLS_DEV

아래 작업 을 수행 하여 위의 SCHEMA 데 이 터 를 내 보 냅 니 다.
$ sqlplus / as sysdba
SQL> create directory dmpdir as '/home/oracle/dmp';

$ expdp \'/ as sysdba\' \
schemas=HLS_TEXT,HLS_0628,HLS_0805,CF_TEST,HLS_DEMO,HLS_0729,HLS_TEST,HLS_DEV \
directory=dmpdir \
dumpfile=hls_20150107.dmp \
logfile=hls_exp_20150107.log


내 보 내기 실행 완료 후 hls 생 성20150107.dmp 파일
새로 만 든 데이터베이스 에 내 보 낸 dmp 파일 을 가 져 옵 니 다.
가 져 오기 전에 dbca 도 구 를 사용 하여 HLS 라 는 데이터 베 이 스 를 다시 만들어 야 합 니 다.
다음 작업 을 수행 하여 데이터 가 져 오기:
$ sqlplus / as sysdba
SQL> create tablespace HLSDEV datafile '/u01/oracle/oradata/HLS/hlsdev.dbf' size 1G autoextend on next 100m maxsize unlimited;
SQL>create directory dmpdir as '/home/oracle/dmp';
SQL> exit;

$ impdp \'/ as sysdba\' \
directory=dmpdir \
dumpfile=hls_20150107.dmp \
logfile=hls_imp_20150107.log


위의 조작 을 실행 한 후에 데이터 베 이 스 는 복구 되 었 다.
주의사항
숨겨 진 매개 변 수 를 사용 하여 데이터 베 이 스 를 강제로 여 는 방식 은 데이터 베이스 에 이상 한 손상 이 발생 하고 백업 이 없 는 상황 에서 비상 식적 인 복구 수단 으로 시도 하 는 수단 일 뿐 매번 최종 적 으로 데이터 베 이 스 를 정상적으로 열 수 있다 는 것 을 보장 할 수 없다.
데이터 베 이 스 를 일상 적 으로 사용 하 는 과정 에서 백업 과 신중 한 조작 을 잘 하 는 것 은 시스템 안전 을 보호 하 는 가장 효과 적 인 수단 이다.

좋은 웹페이지 즐겨찾기