- 목표
> 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"; }