본문 바로가기

오라클 백업/복구

RMAN 백업으로 다른 서버에서의 DB 응급 복구



RMAN 백업을 사용해서 기존 운영 서버가 아닌 다른 서버에서 DB를 OPEN 시킬 수 있는가?


1. 전체 백업 수행 (datafile, archive redo log file, control file)


RMAN> run {

2> allocate channel c1 device type disk ;

3> allocate channel c2 device type disk ;

4> allocate channel c3 device type disk ;

5>

6> # data file backup

7> backup as compressed backupset

8> format '/data2/backup/rman/data_%U_%T'

9> database ;

10>

11> # archive log backup

12> backup as compressed backupset

13> format '/data2/backup/rman/arch_%U_%T'

14> archivelog all ;

15>

16> # control file backup

17> backup current controlfile

18> format '/data2/backup/rman/ctl_%U_%T' ;

19> }



***

RMAN> crosscheck archivelog all ;

--> 

RMAN-06059: expected archived log not found, lost of archived log compromises recoverability

archive log 백업 실패 시 썼던 명령어 (archive log file 이 missing 됬다 이런 에러가 떴었음)

아카이브 로그의 백업 리스트 경로들을 체크하는 명령어인 것 같다.




2. 테스트용 테이블 생성 후, 운영중인 모든 datafile, redo log file, control file 삭제



3. 새로운 서버라고 가정하고 파라미터 파일에서 control file 위치 수정


$ mkdir /data/new

$ vi /app/oracle/product/11g/dbs/inittestdb.ora

--> control file 경로 수정



4. 백업 받은 control file을 신규 경로로 restore


RMAN> startup nomount ;


RMAN> restore controlfile from '/data2/backup/rman/ctl_0vo3k576_1_1_20130303' ;



5. MOUNT 시킨 후 백업 파일을 새 경로로 restore


RMAN> alter database mount ;


RMAN> run {

2> allocate channel ch1 device type disk ;

3> allocate channel ch2 device type disk ;

4>

5> set newname for datafile 1 to '/data/new/system01.dbf' ;

6> set newname for datafile 2 to '/data/new/sysaux01.dbf' ;

7> set newname for datafile 3 to '/data/new/undotbs01.dbf' ;

8> set newname for datafile 4 to '/data/new/users01.dbf' ;

9> set newname for datafile 5 to '/data/new/example01.dbf' ;

10> set newname for datafile 6 to '/data/new/ts_b01.dbf' ;

11>

12> restore database ;

13> switch datafile all ;

14> }



6. Recover 후 resetlogs로 DB OPEN


> recover database using backup controlfile until cancel ;

> alter database open resetlogs ;


--> redo log 중 current 그룹도 삭제되었기 때문에 정상적으로는 db open 불가능 

삭제된 redo log를 재생성하기 위해서는 resetlogs 옵션을 이용해 DB Open

redo log는 reset 초기화 되고, 파일이 없을 경우에는 알아서 생성 후 open 됨

resetlogs를 사용하기 위해서 Recover database until cancel를 사용!





RMAN 백업 파일을 사용해서 다른 서버(위치)에서도 DB OPEN 가능하지만

데이터의 손실이 발생할 수 있다.


'오라클 백업/복구' 카테고리의 다른 글

ASM 관리  (0) 2013.02.24
ASM - Automatic Storage Management  (0) 2013.02.23
RMAN - Block Corruption Recovery + 11g New Features  (0) 2013.02.20
RMAN - 복구 (불완전 복구)  (0) 2013.02.19
RMAN - 복구 (완전 복구)  (0) 2013.02.19