본문 바로가기

빅데이터과정/WORKSHOP 2

#28_140722_WSHOP2_DATAFILE, CONTROLFILE, REDO FILE 복구

728x90

# DATAFILE, CONTROLFILE REDO, FILE 복구





문제4. 모든 datafile들과 모든 controlfile 들을 삭제하고 복구하시오

rm *.dbf – dbf 파일 전부다 삭제
rm *.ctl – ctl 파일 전부다 삭제


복구순서
1.     SQL>startup
2.     RMAN> restore controlfile from autobackup;
3.     RMAN> alter database mount;
4.     RMAN> restore database;
5.     RMAN> recover database;
6.     RMAN> alter database open resetlogs;



1.     alert log file을 보고 어떤 파일이 삭제 되서 문제가 생겼는지 확인해야 한다

2.     SQL> select group#, status, sequence#, archived from v$log;
sequence 번호를 확인해야 한다

SQL> select group#, status, sequence#, archived from v$log;
    GROUP# STATUS            SEQUENCE# ARC
---------- ---------------- ---------- ---
         1 INACTIVE                  4    YES
         3 INACTIVE                  3    YES
         2 CURRENT                  5    NO
arc 는 archive에 저장 여부를 출력
current는 복구 불가능

3.      sequence 번호 직전까지 복구

RMAN> run {set until sequence 5 thread 1;
         restore database;
         recover database;
        SQL "alter database open resetlogs";}





문제1. 모든 datafile, 모든 controlfile, 모든 redo logfile까지 전부 삭제하고 복구하시오(테스트하기전에 로그 스위치를 여러 번 일으켜주시오)

SQL> ALTER SYSTEM SWITCH LOGFILE;
controlfile 백업(binary file)
SQL> alter database backup controlfile to '/home/oracle/control04.ctl';
SQL> ALTER DATABASE BACKUP CONTROLFILE TO trace AS '/home/oracle/cre_con.txt';


복구과정

1.     SQL> shutdown abort

2.     SQL> startup

3.     SQL> exit

4.     RMAN> restore controlfile from autobackup;

5.     RMAN> alter database mount;

6.     SQL> select group#, status, sequence#, archived from v$log;

7.     current redo log group의 sequence 번호를 확인한다

8.     RMAN> run { set until sequence 번호 thread 1;
            restore database;
            recover database;
           SQL “alter database open resetlogs”;}