[DB] DB백업과복구 4일차
오늘은 신입사원 사전직무교육을 받고 기분좋게 강의를 들으러 왔습니다.
어제 발생한 Error를 처리하지 못해 오자마자 Coldbackup을 진행하였습니다.
실습 4장을 진행하여 hot backup도 진행
테이블을 휴지통으로 보내는 개념이 생겨서 복구가 가능합니다 하지만 PURGE명령을 사용하여 Table을 drop하면 복구하기가 보다 힘듭니다.
SQL> drop table emp purge;
지금 DB현황이 불확실하지만 실습 6장을 진행하겠습니다.
log를 조회하니 redo log file의 이중화가 안되어 있어서 다시 이중화를 하였습니다.
SQL> SELECT * FROM v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
1 1 1 52428800 512 1 NO
CURRENT 892748 18-FEB-16 2.8147E+14
2 1 0 52428800 512 1 YES
UNUSED 0 0
3 1 0 52428800 512 1 YES
UNUSED 0 0
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log'
3 '/u01/app/oracle/oradata/orcl/redo02b.log'
4 '/u01/app/oracle/oradata/orcl/redo02b.log';
'/u01/app/oracle/oradata/orcl/redo02b.log'
*
ERROR at line 3:
ORA-00946: missing TO keyword
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log',
3 '/u01/app/oracle/oradata/orcl/redo02b.log',
4 '/u01/app/oracle/oradata/orcl/redo0b.log',
5
SQL>
SQL> ;
1 alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log',
3 '/u01/app/oracle/oradata/orcl/redo02b.log',
4* '/u01/app/oracle/oradata/orcl/redo0b.log',
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log' to group1,
3 '/u01/app/oracle/oradata/orcl/redo02b.log' to group2,
4 '/u01/app/oracle/oradata/orcl/redo03b.log' to group3;
'/u01/app/oracle/oradata/orcl/redo01b.log' to group1,
*
ERROR at line 2:
ORA-02236: invalid file name
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log' to group1;
'/u01/app/oracle/oradata/orcl/redo01b.log' to group1
*
ERROR at line 2:
ORA-02236: invalid file name
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log' to group1;
'/u01/app/oracle/oradata/orcl/redo01b.log' to group1
*
ERROR at line 2:
ORA-02236: invalid file name
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log
SQL>
SQL> alter database add logfile member
2 //u01/app/oracle/oradata/orcl/redo01b.log' to group1;
//u01/app/oracle/oradata/orcl/redo01b.log' to group1
*
ERROR at line 2:
ORA-02236: invalid file name
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log' to group1;
'/u01/app/oracle/oradata/orcl/redo01b.log' to group1
*
ERROR at line 2:
ORA-02236: invalid file name
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo01b.log' to group 1;
Database altered.
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo03b.log' to group 3;
Database altered.
SQL> alter database add logfile member
2 '/u01/app/oracle/oradata/orcl/redo02b.log' to group 2;
Database altered.
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log
/u01/app/oracle/oradata/orcl/redo01b.log
/u01/app/oracle/oradata/orcl/redo03b.log
/u01/app/oracle/oradata/orcl/redo02b.log
6 rows selected.
SQL> SELECT * FROM v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------------- ------------- --------- ------------ ---------
1 1 1 52428800 512 2 NO
CURRENT 892748 18-FEB-16 2.8147E+14
2 1 0 52428800 512 2 YES
UNUSED 0 0
3 1 0 52428800 512 2 YES
UNUSED 0 0
SQL>
==================================== 2 ========================================
Redo log가 날아간 경우의 복구를 진행 해 보도록 하겠습니다. 이중화가 되어있는 경우에 한 하여 진행 할 수 있습니다.
Oracle문서 사용자 backup에 관한부분이 적으므로 아래의 문서를 확인하기를 권장하셨습니다.
Part VIII
Performing User-Managed Backup and Recovery
RMAN이 무엇인지 설명을 해 주셨고 양이 방대하므로 아주 간단하게만 사용을 해 보겠다고 하셨습니다.
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_02_18/o1_mf_nnndf_TAG20160218T204556_cdccqnhy_.bkp
piece => back해서 생긴 파일
이번엔 DB를 전체적으로 백업하였습니다.
위의 부분은 control file과 SPFILE이 자동으로 backup되는 것을 확인할 수 있습니다.
backup list 를 다시 조회하여 확인 해 보았습니다.
========================================= 3 ======================================
SQL> show parameter control_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/app/oracle/oradata/orcl/c
ontrol01.ctl, /u01/app/oracle/
oradata/orcl/control02.ctl
RMAN의 backup정보 또한 control file에 기록을 하고 있습니다.
(실제 backup을 한 파일을 가지고있지는 않습니다.)
7장 실습을 진행하도록 하겠습니다.
RMAN login하는것과 스크립트 만들어서 사용하는 실습을 해 보았습니다.