http://radiocom.kunsan.ac.kr/lecture/oracle/backup_restore/catalog.html
CATALOG 명령
rman 툴에 의해서 백업을 유지관리(Backups & Repository Maintence)하는 명령어는 다음과 같다.
rman 툴은 rman 툴 밖의 운영체제상의 user-managed image copy로 백업해둔 image copy 백업 데이터파일을 사용하여 rman 툴에서 사용할 수 있는데,
그러기 위해서는 먼저 CATALOG 명령을 거쳐야 되는데, 이는 RMAN-generated image copy로 생성된 데이터 파일에는 존재하는 metadata가 User-managed image copy로 저장된 데이터 파일에 없는 metadata를 검사해서 추가하는 과정이 바로 CATALOG이다.
CATALOG 명령을 거치면, datafile copies, backup pieces, archived logs와 같은 파일을 recovery catalog에 카탈로그화 하게 되는 것이다.
백업 데이터 파일은 rman> LIST backup;이나 v$backup_files 뷰에서 확인할 수 있다.
【예제】☜
SQL> ALTER TABLESPACE example BEGIN BACKUP;
Tablespace altered.
SQL> host cp /export/home/oracle/oradata/orcl/example01.dbf /tmp/example01.dbf
SQL> ALTER TABLESPACE example END BACKUP;
Tablespace altered.
SQL> exit
$ rman target /
RMAN> CATALOG DATAFILECOPY '/tmp/example01.dbf';
using target database control file instead of recovery catalog
cataloged datafile copy
datafile copy file name=/tmp/example01.dbf RECID=12 STAMP=711897851
RMAN> exit
$ ls -l /tmp/example01.dbf
-rw-r----- 1 oracle oinstall 104865792 2월 25일 13:23 /tmp/example01.dbf
$
【예제】☜
SQL> select fname from v$backup_files;
FNAME
--------------------------------------------------------------------------------
/export/home/oracle/oradata/orcl/users01.dbf
/export/home/oracle/oradata/orcl/system01.dbf
/export/home/oracle/oradata/orcl/example01.dbf
/export/home/oracle/oradata/orcl/undotbs01.dbf
/export/home/oracle/oradata/orcl/sysaux01.dbf
/export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_23/o1_mf_nnndf_TAG20100223T153548_5r6xt4m8_.bkp
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_5r9kdmo5_.dbf
/export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_23/o1_mf_ncsnf_TAG20100223T153548_5r6xx4vt_.bkp
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_system_5r9lv5dz_.dbf
/export/home/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_TAG20100224T154701_5r9lww69_.ctl
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_system_5r9mdh7l_.dbf
/export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_24/o1_mf_nnsnf_TAG20100224T154701_5r9lwxb6_.bkp
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_sysaux_5r9mg6f8_.dbf
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_undotbs1_5r9mhmc9_.dbf
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_5r9mhtg2_.dbf
/export/home/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_TAG20100224T155615_5r9mj9m2_.ctl
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_users_5r9mjbo9_.dbf
/export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_24/o1_mf_nnsnf_TAG20100224T155615_5r9mjcry_.bkp
/export/home/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_5rco2gvv_.dbf
23 개의 행이 선택되었습니다.
SQL> select file_name from DBA_DATA_FILES;
FILE_NAME
--------------------------------------------------
/export/home/oracle/oradata/orcl/users01.dbf
/export/home/oracle/oradata/orcl/undotbs01.dbf
/export/home/oracle/oradata/orcl/sysaux01.dbf
/export/home/oracle/oradata/orcl/system01.dbf
/export/home/oracle/oradata/orcl/example01.dbf
SQL>
RMAN> list backup;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
6 Full 1.05G DISK 00:01:28 23-FEB-10
BP Key: 6 Status: AVAILABLE Compressed: NO Tag: TAG20100223T153548
Piece Name: /export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_23/o1_mf_nnndf_TAG20100223T153548_5r6xt4m8_.bkp
List of Datafiles in backup set 6
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 1177601 23-FEB-10 /export/home/oracle/oradata/orcl/system01.dbf
2 Full 1177601 23-FEB-10 /export/home/oracle/oradata/orcl/sysaux01.dbf
3 Full 1177601 23-FEB-10 /export/home/oracle/oradata/orcl/undotbs01.dbf
4 Full 1177601 23-FEB-10 /export/home/oracle/oradata/orcl/users01.dbf
5 Full 1177601 23-FEB-10 /export/home/oracle/oradata/orcl/example01.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
7 Full 9.36M DISK 00:00:02 23-FEB-10
BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20100223T153548
Piece Name: /export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_23/o1_mf_ncsnf_TAG20100223T153548_5r6xx4vt_.bkp
SPFILE Included: Modification time: 23-FEB-10
SPFILE db_unique_name: ORCL
Control File Included: Ckp SCN: 1177640 Ckp time: 23-FEB-10
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
8 Full 80.00K DISK 00:00:00 24-FEB-10
BP Key: 8 Status: AVAILABLE Compressed: NO Tag: TAG20100224T154701
Piece Name: /export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_24/o1_mf_nnsnf_TAG20100224T154701_5r9lwxb6_.bkp
SPFILE Included: Modification time: 24-FEB-10
SPFILE db_unique_name: ORCL
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
9 Full 80.00K DISK 00:00:00 24-FEB-10
BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20100224T155615
Piece Name: /export/home/oracle/flash_recovery_area/ORCL/backupset/2010_02_24/o1_mf_nnsnf_TAG20100224T155615_5r9mjcry_.bkp
SPFILE Included: Modification time: 24-FEB-10
SPFILE db_unique_name: ORCL
RMAN>
| 디스크의 모든 백업파일 catalog하기 |
| CALTALOG 한 파일에서 UNCATALOG로 metadata를 환원시키기 |
CATALOG로 의해서 metadata를 넣어 세탁한 것을 다시 환원시키는 과정은 CHANGE ... UNCATALOG 문을 사용하여 CATALOG에 의해 들어갔던 metadata를 삭제하여 환원시키는 것이다.
RMAN> CHANGE DATAFILECOPY '/export/home/oracle/app/oracle/product/11.2/backup/example01.dbf' UNCATALOG; uncataloged datafile copy datafile copy file name=/export/home/oracle/app/oracle/product/11.2/backup/example01.dbf RECID=13 STAMP=711902927 Uncataloged 1 objects RMAN> CHANGE CONTROLFILECOPY '/tmp/control01.ctl' UNCATALOG; ☜ control 파일인 경우
| recovery catalog에 쿼리하기 |
recovery catalog 뷰로부터 어떤 정보를 확인하려면 recovery catalog를 의미하는 RC_prefix로 시작하는 뷰로부터 질의하면 된다.
rc_로 시작되는 뷰는 v$로 시작되는 뷰와 거의 같으나 rc_로 시작되는 뷰에는 metadata에 대한 정보를 담고 있지만, v$로 시작되는 뷰는 metadata에 대한 정보가 없는것이 다르다.
즉,
그리고, RC_BACKUP_FILES를 실행하려면, 먼저 DBMS_RCVMAN.SETDATABASE를 실행시켜야 한다.
【예제】☜
$ sqlplus sys as sysdba
세션이 변경되었습니다.
SQL> select dbid from v$database;
DBID
----------
1239068612
SQL> call dbms_rcvman.setdatabase(null,null,null,1239068612);
호출이 완료되었습니다.
SQL> execute dbms_rcvman.setdatabase(null,null,null,1239068612);
PL/SQL procedure successfully completed.
SQL>
recovery catalog database를 연결하고,
SQL> select db_key from rc_database
2 where dbid=dbid_of_target;
SQL> SELECT BS_KEY, BACKUP_TYPE, COMPLETION_TIME
2 FROM RC_DATABASE_INCARNATION i, RC_BACKUP_SET b
3 WHERE i.DB_KEY = 1
4 AND i.DB_KEY = b.DB_KEY
5 AND i.CURRENT_INCARTION = 'YES';
SQL> SELECT * FROM RC_BACKUP_FILES;'DB > Oracle' 카테고리의 다른 글
| 백업 & 복구 32 - RMAN : 복구 (0) | 2016.02.04 |
|---|---|
| rman 툴 (0) | 2016.02.04 |
| oracle listener.log sqlnet.log 백업, 정리 (0) | 2016.02.04 |
| Export툴(exp, expdp)에 의한 백업 (0) | 2016.02.04 |
| 오라클 expdp/impdp Utility (0) | 2016.02.04 |