본문 바로가기

빅데이터과정/WORKSHOP 2

#26_140718_WSHOP2_RECOVERY CATALOG

728x90

# RECOVERY CATALOG








Recovery catalog 

RMAN 으로 백업복구 작업을 하고 관련 정보를 저장해 하는 장소
catalog 에는 백업에 필요한 파일 자체를 저장되는 것이 아니고 백업에 필요한 정보들만 저장한다


RMAN이 백업된 파일이 어디있는지 어떻게 알수있는가?

백업을 받았다라는 메타 정보가 저장이 되어있기 때문이다
control file에 메타정보가 저장되어 있다


Recovery catalog 의 역할은?

RMAN 으로 백업했을 때 어떠한 파일들을 백업받았다는 목록 리스트 즉 메타정보를 저장하는 공간이다




Recovery catalog 를 사용하는 이유

1.     컨트롤 파일에 적는 것 보다 많은 정보를 적을수 있기 때문에
2.     백업과 복구를 위한 Rman 스크립트를 저장하고 사용할 수 있다
3.     controlfile에 백업정보를 적게 되면 control file이 없어지게 되면 백업정보도 같이 없어진다







window 오라클 DB에서 테이블 스패이스와 유저를 생성해야 한다

SQL> connect sys/oracle as sysdba

SQL> create tablespace rcat_ts datafile 'c:\rcat01.dbf' size 50m;
   
   SQL> create user rcowner
     identified by rcowner
     default tablespace rcat_ts
     temporary tablespace temp
     Quota unlimited on rcat_ts;
   
   SQL> grant unlimited tablespace to rcowner;

SQL> grant recovery_catalog_owner to rcowner;
 # recover catalog 롤 부여

C:\Users\실습실>rman catalog rcowner/rcowner@xe
 # Rman 으로 복구 카탈로그 유저로 복구 카탈로그 DB에 접속

RMAN> rman catalog rcowner/rcowner@xe
  
   RMAN> create catalog tablespace rcat_ts;

recovery catalog 에 target DB를 등록해줘야 한다

c:> rman target sys/oracle@dbdb catalog rcowner/rcowner@xe
 # sys 유저로 target DB(백업 대상이 되는 DB)에 접속하면서 동시에 catalog DBrcowner 유저도 접속하는 방법

RMAN> register database;
 # target DB를 recovery catalog 에 등록해준다





catalog 명령어

1.     RMAN> catalog backuppiece ‘file_name’;
rman 으로 백업받지 않은 사용자 관리 백업본을 rman이 인식할 수 있도록 한다
즉 나중에 복구할 때 rman이 사용할 수 있도록 등록해주는 명령어
rman으로 복구하려면 반드시 rman 으로 백업받은 파일이 있어야 한다

2.     RMAN> resnyc catalog;
target DB control file의 내용을 recovery catalog 에 동기화 시켜주는 명령어
tablespace 생성하거나 지울 때 또는 alter system set을 이용해 control file이 변경된다면 알려준다

3.     RMAN> upgrade catalog;
recovery catalog db가 target db보다 버전이 낮으면 target db를 백업하거나 복구할 때 새오누 기능을 사용하지 못할 수 있다.
예를들면 복구 어드바이저 기능은 10g 버전에는 없었고 11g 버전에서만 될 때 10g 버전의DB를 target DB의 11g로 업그레이드 시킨다(11g의 새로운기능)





  
recover catalog DB를 사용했을 때의 장점인 백업과 복구 스크립트를 생성하는 텍스트

c:> rman target sys/oracle@dbdb catalog rcowner/rcowner@xe

RMAN> create script whole_backup{backup database;}
RMAN> print script whole_backup;
스크립트 출력
RMAN> create script partial_backup{
        backup datafile 1;
        backup datafile 2;}
RMAN> run {execute script whole_backup;}
스크립트 수행



마지막문제모든 data file 들을 삭제했을 떄 복구하는 스크립트를 만들고 모든 data file 들을 삭제한 후 생성한 스크립트를 돌려서 복구하시오(반드시 양쪽으로 접속해서  백업한 후 장애를 일으키시오)
 rman target sys/oracle@dbdb catalog rcowner/rcowner@xe

create script partial_recovery{
        restore DATAFILE 1,2,3,4,5,6;
        RECOVER DATAFILE 1,2,3,4,5,6;
        ALTER DATABASE OPEN;
        }

run {execute script partial_recovery;}