테스트 시나리오 :
핫백업 중에 DB가 강제 종료가 된다면 어떻게 될까?
(alter tablespace XXXX begin backup
-> !cp /oracle/XXX.dbf /oracle_backup/XXX.dbf
-> 강제 종료(shutdown abort))
테스트 :
0. 현재 인스턴스명과 상태 확인
1. 테이블 스페이스 단위 핫백업
2. 강제 종료
3. 시작
4. 에러 메시지 확인
5. 문제 원인 분석
위의 에러 메시지로 나타날 수 있는 장애의 원인이 4가지라고 한다.(metalink 문서번호 : 183367.1)
1) 핫백업 중에 테이블 스페이스 장애 후 startup시
2) 백업에서 데이터 파일 또는 테이블스페이스 복원 후에 startup시
3) 데이터 파일 또는 테이블 스페이스를 온라인으로 시도할 때
4) 불완전 복구시에 'using backup controlfile' 옵션으로 복구할 때
원인은 이미 알고 있는 거지만 2)이므로 2)에 대한 해결만 이 포스트에서 하겠다.
6. 장애 해결
1) mount로 startup(어차피 그냥 startup 하더라도 mount까지밖에 올라가지 않는다.)
2) 핫백업 중인 데이터 파일을 찾는다.
3) 다음의 명령을 통해 end backup을 실시한다.
4) 데이터베이스를 open한다.
참조 : http://blog.naver.com/darkturtle?Redirect=Log&logNo=50029568769
핫백업 중에 DB가 강제 종료가 된다면 어떻게 될까?
(alter tablespace XXXX begin backup
-> !cp /oracle/XXX.dbf /oracle_backup/XXX.dbf
-> 강제 종료(shutdown abort))
테스트 :
0. 현재 인스턴스명과 상태 확인
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
orcl OPEN
---------------- ------------
orcl OPEN
1. 테이블 스페이스 단위 핫백업
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
EXAMPLE
TEMP
SQL> select name from v$datafile;
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
EXAMPLE
TEMP
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/example01.dbf
SQL> alter tablespace system begin backup;
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/example01.dbf
SQL> alter tablespace system begin backup;
Tablespace altered.
SQL> !cp /u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/oradata/orcl_backup/system01.dbf
SQL> !cp /u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/oradata/orcl_backup/system01.dbf
2. 강제 종료
SQL> shutdown abort;
ORACLE instance shut down.
ORACLE instance shut down.
3. 시작
SQL> startup;
ORACLE instance started.
ORACLE instance started.
4. 에러 메시지 확인
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'
ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'
5. 문제 원인 분석
위의 에러 메시지로 나타날 수 있는 장애의 원인이 4가지라고 한다.(metalink 문서번호 : 183367.1)
1) 핫백업 중에 테이블 스페이스 장애 후 startup시
2) 백업에서 데이터 파일 또는 테이블스페이스 복원 후에 startup시
3) 데이터 파일 또는 테이블 스페이스를 온라인으로 시도할 때
4) 불완전 복구시에 'using backup controlfile' 옵션으로 복구할 때
원인은 이미 알고 있는 거지만 2)이므로 2)에 대한 해결만 이 포스트에서 하겠다.
6. 장애 해결
1) mount로 startup(어차피 그냥 startup 하더라도 mount까지밖에 올라가지 않는다.)
SQL> startup mount;
2) 핫백업 중인 데이터 파일을 찾는다.
SQL> SELECT V1.FILE#, NAME
FROM V$BACKUP V1, V$DATAFILE V2
WHERE V1.STATUS = 'ACTIVE' AND V1.FILE# = V2.FILE# ;
FILE# NAME
---------- ----------------------------------------------------------------------------------------------------
1 /u01/app/oracle/oradata/orcl/system01.dbf
FROM V$BACKUP V1, V$DATAFILE V2
WHERE V1.STATUS = 'ACTIVE' AND V1.FILE# = V2.FILE# ;
FILE# NAME
---------- ----------------------------------------------------------------------------------------------------
1 /u01/app/oracle/oradata/orcl/system01.dbf
3) 다음의 명령을 통해 end backup을 실시한다.
SQL> alter tablespace system01 end backup;
4) 데이터베이스를 open한다.
SQL> alter database open;
참조 : http://blog.naver.com/darkturtle?Redirect=Log&logNo=50029568769
'Oracle > Backup & Recovery' 카테고리의 다른 글
current redo log group 삭제시 복구 (0) | 2010.11.24 |
---|---|
RMAN (0) | 2010.07.09 |
Block Corruption (0) | 2009.12.23 |
restore points (0) | 2009.12.23 |
clone DB를 이용한 incomplete recovery 실습2 : RMAN (0) | 2009.12.22 |