ORACLE 11g RMAN Catalog v1.0
12.10.22 |
1.0 |
|
|
|
|
|
|
|
1. RMAN Recovery Catalog
Backup, Recovery 와 연관 된 정보들은 Control file 에도 저장된다. 하지만 이 정보는 보관주기가 있으며 control_file_record_keep_time 파라미터를 통해 조정한다. (Default : 7일)
RMAN Recovery Catalog 를 이용하면 복수의 타겟에 대해 중앙에서 관리가 가능하며, Backup, Recovery 정보도 훨씬 길게 보관할 수 있다.
2. Preparing for using RMAN Recovery Catalog
Recovery Catalog 운용하기에 앞서 다음과 같은 과정을 밟는다.
l Recovery Catalog Owner 가 사용할 Tablespace 생성
l Recovery Catalog Owner 생성 및 권한 할당
l Catalog 생성
DB ogg1 에 테이블 스페이스를 생성 (in SQL)
create tablespace rctbs
datafile '/u01/app/oracle/oradata/ogg1/rctbs01.dbf' size 1g;
User 생성 및 권한 할당 (in SQL)
create user rcat identified by rcat
temporary tablespace temp
default tablespace rctbs
quota unlimited on rctbs;
grant recovery_catalog_owner to rcat;
Catalog 생성 (in RMAN)
test1[ogg1]@/home/oracle>rman catalog rcat/rcat
Recovery Manager: Release 11.2.0.1.0 - Production on ¿ù 10¿ù 22 15:51:22 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to recovery catalog database
RMAN> create catalog;
recovery catalog created |
3. Register and Unregister Database
DB ogg1 에서 register 해 보겠다.
test1[ogg1]@/home/oracle>rman target system/oracle@ogg1 catalog rcat/rcat@ogg1
Recovery Manager: Release 11.2.0.1.0 - Production on ¿ù 10¿ù 22 16:29:35 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: OGG1 (DBID=3966260165) connected to recovery catalog database
RMAN> register database;
database registered in recovery catalog starting full resync of recovery catalog full resync complete |
위 과정을 밟으면 ract.rc_database 의 row 가 하나 추가된다. 추가 된 DB 는 ogg1 이다.
unregister 는 ‘register database’ 의 register 대신에 unregister 를 사용하면 된다. 위 과정을 밟으면 추가 되었던 ROW 가 다시 삭제된다.
4. DROP Recovery Catalog
rcat 은 create catalog 이후에 142개의 table 을 보유하고 있었다.
test1[ogg1]@/home/oracle>rman catalog rcat/rcat@ogg1
Recovery Manager: Release 11.2.0.1.0 - Production on ¿ù 10¿ù 22 16:34:42 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to recovery catalog database
RMAN> drop catalog;
recovery catalog owner is RCAT enter DROP CATALOG command again to confirm catalog removal
RMAN> drop catalog;
recovery catalog dropped |
drop catalog 이후에 44개의 테이블이 남았다. 해당 테이블은 확인한 결과 휴지통에 들어가 있는 테이블로 결과적으로 테이블이 전부 삭제되었다.
Drop Catalog 는 Base Recovery Catalog 를 삭제하는 작업으로 이에 저장되어 있던 N 개 데이터베이스의 정보들이 전부 삭제 된다.
이와 같이 크리티컬한 작업이기에 동일한 명령을 한번 더 입력하도록 되어 있다.
5. Recovery Catalog Command
catalog datafilecopy '~';
catalog buackuppiece '~';
catalog archivelog '~';
catalog controlfile '~';
catalog start with '~';
catalog recovery area [noprompt];
catalog start with ‘/backup1/*.dbf’
데이터를 수동으로 카탈로그에 등록하는 명령어이다.
catalog start with 의 인자는 디렉토리 이름을 받는다.
6. Virtual Private Catalog
기본적으로, Base Recovery Catalog 의 소유자만이 그 메타데이타에 접근할 수 있다. 하지만 해당 OWNER 가 RMAN GRANT 명령을 사용하여 다른 유저가 Recovery Catalog 에 제한적인 접근을 하도록 허용할 수 있다.
사용하기 위한 순서는 다음과 같다.
l Virtual Catalog 를 사용할 유저를 생성하고 권한을 할당한다.
l Base Recovery Catalog 에서 위에서 생성한 유저에 접근 권한을 할당한다.
l Virtual Catalog 를 생성한다.
/*+ 실습은 생략한다… */
7. Merge Two Catalogs
앞서 본 방법으로 dg1 에 대해 catalog 를 생성하고 백업 대상 테이블을 register 하였다.
위 결과로 다음과 같이 레코드를 확인할 수 있었다.
SQL> select * from rc_database;
DB_KEY DBINC_KEY DBID NAME RESETLOGS_CHANGE# RESETLOG ---------- ---------- ---------- ---------------- ----------------- -------- 2 4 1695650226 DG 1177160 12/05/10 |
위 정보를 ogg1 에 생성한 카탈로그로 옮기고자 한다.
test1[ogg1]@/home/oracle>rman catalog rcat/rcat@ogg1
Recovery Manager: Release 11.2.0.1.0 - Production on ¿ù 10¿ù 22 18:10:51 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to recovery catalog database
RMAN> import catalog rcat/rcat@dg1 db_name=dg;
Starting import catalog at 12/10/22 connected to source recovery catalog database import validation complete database unregistered from the source recovery catalog Finished import catalog at 12/10/22 |
위의 결과로 ogg1 의 rc_database 에는 두 건의 레코드가 확인되었고, 반면 dg1 의 rc_database 에는 row 가 하나도 없음을 확인하였다.
위 로그에 보면 database unregistered … 부분이 있는데 메타데이타의 이전이 끝나면서 소스가 되는 카탈로그 위치에서 unregister database 를 수행한다.
만약 이를 원하지 않는 경우에는 다음과 같이 옵션을 추가해 수행한다.
import catalog rcat/rcat@dg1 db_name=dg no unregister;
위와 같이 사용하면 소스가 된 카탈로그에 unregister database 수행을 하지 않는다.
추가로 db_name 대신에 dbid={number}[[,number][,number]…] 와 같이 사용할 수도 있다.
DBID 는 v$database.dbid 로 확인 가능하다.
8. Dictionary View
RC_STORED_SCRIPT
Recovery Catalog 에 저장 된 스크립트 정보이다.
RC_UNUSABLE_BACKUPFILE_DETAILS
UNAVAILABLE 혹은 EXPIRED 상태의 모든 백업파일 정보를 보여준다.
RC_RMAN_STATUS
이 뷰에는 RMAN 에서 수행 된 모든 오퍼레이션에 대해 기록되어 있다.
기본적으로 V$RMAN_STATUS 와 동일한 내용을 가지며, 다만 현재 세션의 내용은 가지지 않는다.
RC_RMAN_CONFIGURATION
RMAN 에서 CONFIGURE 한 셋팅 값을 조회할 수 있다.
RC_DATAFLE
Recovery Catalog 에 등록 된 모든 데이터 파일을 보여준다.
RC_DATABASE
카탈로그에 등록되어 있는 DB 를 열람할 수 있다.
RC_ARCHIVED_LOG
Archived, Unarchived redo logs 에 대해 시간적인 정보를 담고 있다.