RMAN 백업

- 목표
  > RMAN 전용 백업의 유형 식별
  > RMAN BACKUP 명령을 사용하여 백업 셋 생성
  > 제어 파일 백업
  > 아카이브된 리두 로그 파일 백업
  > RMAN COPY 명령을 사용하여 이미지 복사본 생성
 
- 개념
  > 전체 데이터베이스, 테이블스페이스의 모든 데이터 파일, 선택된 데이터 파일, 제어 파일, 아카이브된 리두 로그 파일을 백업할 수 있다.
  > 복구 카탈로그를 사용 중인 경우에는 닫힌 데이터베이스 백업 수행 중에도 복구 카탈로그 데이터베이스는 열려 있어야 한다. 
  > RMAN 을 사용하여 열린 데이터베이스 백업을 하는 경우에는 'ALTER TABLESPACE ... BEGIN BACKUP;' 명령을 사용하여 테이블스페이스를 백업 모드로 전환하면 안된다.
 
- 유형 
  > 이미지 복사본
    >> 데이터 파일, 제어 파일 또는 아카이브된 리두 로그 파일의 복사본
    >> RMAN 또는 운영 체제 유틸리티를 사용하여 생성할 수 있다.
    >> 데이터 파일의 이미지 복사본은 사용되지 않는 블록을 포함하여 데이터 파일의 모든 블록으로 구성된다.
    >> 이미지 복사본은 단 하나의 파일만을 포함하며 단일 복사 작업이 다중화될 수 없다.
  > 백업 셋
    >> 하나 이상의 데이터 파일, 제어 파일 또는 아카이브된 리두 로그 파일을 포함할 수 있다.
    >> 다음 두 가지의 다른 방법으로 생성할 수 있다.
       >>> 전체 백업
           >>>> 하나 이상의 파일을 백업한다. 지정한 파일에 대한 데이터를 포함하는 모든 블록이 백업된다.
       >>> 증분 백업
           >>>> 마지막 증분 백업 이후 변경된 블록만 포함하는 데이터 파일의 백업
           >>>> 지정한 파일에 대한 데이터를 포함하는 모든 블록을 백업하는 기본 레벨(또는 증분 레벨 0) 백업이 필요하다.
           >>>> 증분 레벨 0 및 전체 백업은 데이터 파일의 모든 블록을 복사하지만 증분 백업 전략에 전체 백업을 사용할 수 없다.
          
- 백업 셋
  > 백업 피스라는 하나 이상의 물리적 파일로 구성된다.
  > 데이터 파일, 제어 파일 및 아카이브된 리두 로그 파일을 포함하는 백업 셋을 만들 수 있다.
  > 백업 셋을 백업할 수도 있다.
  > 유형
    >> 데이터 파일 : 데이터 파일 및 제어 파일은 포함할 수 있지만 아카이브된 로그는 포함할 수 없다.
    >> 아카이브된 로그 : 아카이브된 로그는 포함할 수 있지만 데이터 파일 또는 제어 파일은 포함할 수 없다.
  > 디스크에 있는 이미지 복사본과는 달리 복구를 수행하기 전에 먼저 RMAN에 의한 복원이 필요할 수도 있다.
  > 백업 셋의 각 파일은 동일한 Oracle 블록 크기를 가져야 한다.
  > 제어 파일이 포함되면 마지막 데이터 파일 백업 셋에 기록된다.
  > 제어 파일을 백업 셋에 포함하는 방법
    >> INCLUDE CURRENT CONTROLFILE 구문으로 명시적으로 포함
    >> 파일 1(시스템 데이터 파일)을 백업하여 암시적으로 포함
  > 데이터베이스가 열려 있거나 닫혀 있을 때 백업을 만들 수 있다.
  > BACKUP 명령으로 백업 셋을 생성한다.
  > 디스크 또는 테이프에 백업 셋을 기록할 수 있다.
  > 백업 셋에서 파일을 추출하려면 복원 작업이 필요하다.
  > 사용하지 않은 블록은 포함하지 않는다.
  > FILESPERSET 매개변수는 백업 셋에 포함된 데이터 파일의 개수를 제어한다.
  > 아카이브된 리두 로그 파일은 증분 백업이 될 수 없으며 기본적으로 전체 백업이다.
  > 병렬화 : CONFIGURE 명령의 PARALLELISM 옵션을 1보다 큰 수로 설정하거나, 수동으로 복수 채널 할당
 
- 백업 피스
  > 대개 논리적 백업 셋은 하나의 백업 피스만 갖는다.
  > 하나 이상의 Oracle 데이터 파일 또는 아카이브된 로그를 포함할 수 있는 단일 물리적 파일이다.
  > MAXPIECESIZE 를 CONFIGURE CHANNEL 또는 ALLOCATE CHANNEL 명령과 함께 사용하여 각 백업 피스의 크기를 제한할 수 있다.
    RMAN> RUN {
       2>   ALLOCATE CHANNEL t1 TYPE 'SBT'
       3>   MAXPIECESIZE = 4G;
       4>   BACKUP
       5>     FORMAT 'df_%t_%s_%p' FILESPERSET 3
       6>     (tablespace users); }
      
- BACKUP 명령
  > 예제
    RMAN> BACKUP
       2>   FORMAT '/BACKUP/df_%d_%s_%p.bus'
       3>   DATABASE filesperset = 2;
  > 자동 채널 할당을 사용하지 않는 경우 BACKUP 명령의 실행을 위해 채널을 수동으로 할당한다.
 
- FORMAT
  > %u : 백업 셋 번호와 해당 백업 셋 생성 시간에 대한 단축 표기법으로 구성된 8자 이름
  > %p : 백업 셋의 백업 피스 번호
  > %c : 이중화된 백업 피스 집합에 포함될 백업 피스의 복사본 수
  > %s : 백업 셋 번호
  > %d : 데이터베이스 이름
  > %U : %u_%p_%c, 형식을 지정하지 않을 경우 기본적으로 사용            
 
- 이중화된 백업 셋
  > 다음 명령을 사용하여 최대 4개까지 생성 가능
    BACKUP COPIES
    SET BACKUP COPIES
    CONFIGURE ... BACKUP COPIES
  > 예제
    RMAN> BACKUP COPIES 2 DATAFILE 1, DATAFILE 2
       2> FORMAT '/BACKUP1/%U', '/BACKUP2/%U';
      
- 백업 셋 백업
  RMAN> BACKUP BACKUPSET 명령어로 가능        
 
- 아카이브된 리두 로그 파일 백업
  > UNTIL 절 또는 SEQUENCE 매개변수를 포함하지 않는 모든 'BACKUP ... ARCHIVELOG' 명령을 시작할 때 RMAN은 현재 온라인 리두 로그를 자동으로 전환하여 아카이브하려고 시도한다.
  > 아카이브된 리두 로그 파일만 포함한다.
  > 항상 전체 백업
  > 예제
    RMAN> BACKUP
       2>   FORMAT '/disk1/backup/ar_%t_%s_%p'
       3>   ARCHIVELOG ALL DELETE ALL INPUT;
      
- 제약 조건
  > 데이터베이스는 마운트되거나 열려 있어야 한다.
  > 온라인 리두 로그 백업은 지원되지 않는다.
  > 복구 카탈로그를 사용하는 경우 복구 카탈로그 인스턴스가 열려 있어야 한다.
  > 대상 데이터베이스가 NOARCHIVELOG 모드인 경우 '클린' 테이블스페이스 및 데이터 파일 백업만 수행할 수 있다.(OFFLINE NORMAL 또는 READ ONLY 테이블스페이스의 백업) 데이터베이스를 정상적으로 종료한 후 MOUNT 모드로 재시작한 경우에만 수행할 수 있다.
  > 대상 데이터베이스가 ARCHIVELOG 모드인 경우, 현재 데이터 파일만 백업할 수 있다. 복원된 데이터 파일은 복구에 의해 현재 상태가 된다.
 
- 이미지 복사본 특성
  > 디스크에만 쓸 수 있다.
  > 즉시 복구에 사용할 수 있도록 복원할 필요가 없다.
  > 단일 데이터 파일, 아카이브된 로그 또는 제어 파일의 물리적 복사본이다.
  > 모든 블록을 포함한다는 점에서 운영체제 백업과 가장 유사하다.
  > 증분 백업 전략의 일부가 될 수 있다.
  > 이미지 복사본을 증분 백업 전략에서 레벨 0 백업으로는 지정할 수 있지만 다른 레벨로는 지정할 수 없다.

- 예제
  RMAN> COPY
     2> DATAFILE '/ORADATA/users_01_db01_dbf' TO
     3>          '/BACKUP/users01.dbf' tag=DF3,
     4> ARCHIVELOG 'arch_1060.arc' TO
     5>            'arch_1060.bak';      
                     
- NOARCHIVELOG 모드에서의 백업
  1> 백업 공간 확인
  2> NORMAL 또는 IMMEDIATE 절을 사용하여 종료
  3> 데이터베이스 마운트
  4> 복수 채널 할당
  5> BACKUP 명령 실행
  6> 백업 완료 및 카탈로그화 확인
  7> 데이터베이스 오픈            
 
- RMAN 제어 파일 자동 백업
  > CONFIGURE CONTROLFILE AUTOBACKUP 명령을 사용하여 활성화
  > 활성화되면 RMAN은 BACKUP 또는 COPY 명령 후 제어 파일의 자동 백업 수행
  > 백업에 기본 이름 제공, c-IIIIIIIIII-YYYYMMDD-QQ(%F)
  > 예제
    RMAN> SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE disk TO 'controlfile_%F';
   
- 관련 Dictionary
  V$ARCHIVED_LOG
  V$BACKUP_CORRUPTION
  V$COPY_CORRUPTION
  V$BACKUP_DATAFILE
  V$BACKUP_REDOLOG
  V$BACKUP_SET
  V$BACKUP_PIECE

---------------------------------------------------------

RMAN 완전 복구

- 목표
  > RMAN을 사용한 복원 및 복구 설명
  > ARCHIVELOG 모드로 완전 복구 수행
  > 다른 위치에 데이터 파일 복원
  > 아카이브된 리두 로그 파일을 사용하여 테이블스페이스 재배치 및 복구
 
- ARCHIVELOG 모드에서 RMAN을 사용한 데이터베이스 복구 예제
  1> rman target /
  2> RMAN> STARTUP MOUNT
  3> RMAN> RESTORE DATABASE;
  4> RMAN> RECOVER DATABASE;
  5> RMAN> ALTER DATABASE OPEN;
 
- RMAN을 사용하여 새 위치에 데이터 파일 복원 예제
  1> rman target /
  2> RMAN> STARTUP MOUNT
  3> run{
     set newname for datafile 1 to '/<newdir>/system01.dbf';
     restore database;
     switch datafile all;
     recover database;
     alter database open; }
    
- RMAN을 사용하여 테이블스페이스 복구
  1> run{
     sql "alter tablespace users offline immediate";
     restore tablespace users;
     recover tablespace users;
     sql "alter tablespace users online"; }    
    
- RMAN을 사용하여 테이블스페이스 재배치
  1> run{
     sql "alter tablespace users offline immediate";
     set newname for datafile '/ORADATA/u03/users01.dbf' to '/ORADATA/u04/users01.dbf';
     restore tablespace uers;
     switch datafile 3;
     recover tablespace users;
     sql "alter tablespace users online"; }  


출처 ㅣ 네이버 회원 드리블

+ Recent posts