본문 바로가기

카테고리 없음

ORACLE 11g RMAN CATALOG v1.0

ORACLE 11g RMAN Catalog v1.0

 

Date

Ver

Etc.

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 에 대해 시간적인 정보를 담고 있다.