2010. 3. 19. 10:26
■ RMAN 명령 유형
* 독립형 명령
- RMAN 프롬프트에서 개별적으로 실행 됨
RMAN > CONFIGURE CHANNEL DEVICE TYPE DISK
* 작업형 명령
- RUN 명령의 중괄호 내에서 그룹으로 실행 됨
RMAN > RUN {
2 > ALLOCATE CHANNEL c1 DEVICE TYPE DISK
3 > FORMAT ‘/data/backup/rman/%U’;
4 > BACKUP DATABASE;
5 > }
■ RMAN 백업 대상
* database (all datafile 과 현재 control file)
* tablespace
* datafile (current 또는 image copy)
* archived redo log
* control file (current 또는 image copy)
※ 백업이 되지 않는 대상 : init.ora, password file. listener.ora, tnsnames.ora 등
■ Backup 제한 조건
* 데이터베이스가 mount 또는 open되어 있어야 합니다.
* Online Redo log는 Backup 불가
* No Archive log mode에서는 Clean Backup만 사용 가능
즉 오프라인 Tablespace나 읽기전용 Tablespace Backup 사용 가능함
* Archive log mode에서는 현재 Data file Backup만 사용 가능
■ RMAN 백업 개념
* Recovery Manager Backup은 서버 관리 Backup이다.
* Recovery Manager Backup은 Backup 작업을 위해 Oracle 서ㅓ 세션을 사용한다.
* 전체 Database, Tablespace의 모든 Data file, 선택된 Data file, Control file, Archived Redo log file을 Backup할 수 있다.
* 닫힌 데이터베이스 백업
- Tablespace가 백업 모드여서는 안된다.
- Data file, Control file, Archived Redo log file을 포함한다.
* 열린 데이터베이스 백업
- Tablespace가 백업 모드여서는 안된다.
- Data file, Control file, Archived Redo log file을 포함한다.
■ RMAN 백업 셋의 특징
* Backup 명령은 Backup Set을 생성한다.
* Backup Set은 대개 둘 이상의 파일을 포함한다.
* 디스크 또는 테이프에 Backup Set을 기록할 수 있다.
* Backup Set에서 파일을 추출하려면 복원 작업이 필요하다.
* Data file Backup Set은 증분 또는 전체 백업이 될 수 있다.
* Backup Set은 사용하지 않은 블록은 포함하지 않는다.
■ RMAN 백업 피스 크기 관리
* 백업 피스 크기는 다음과 같이 제한할 수 있다.
RMAN > RUN {
2 > ALLOCATE CHANNEL t1 DEVICE TYPE 'SET'
3 > MAXPIECESIZE = 4G;
4 > BACKUP
5 > FORMAT 'df_%t_%s_%p' FILESPERSET 3
6 > (tablespace users);}
■ RMAN 백업 명령
RMAN > BACKUP
2 > FORMAT '/data/backup/rman/df_%d_%s_%p.bus'
3 > DATABASE filesperset = 2;
■ RMAN 병렬 백업
RMAN > RUN {
2 > allocate channel c1 type sbt;
3 > allocate channel c2 type sbt;
4 > allocate channel c3 type sbt;
5 > BACKUP
6 > incremental level = 0
7 > FORMAT '/data/backup/rman/df_%d_%s_%p.bak'
8 > (datafile 1, 4, 5 channel c1 tag=DF1)
9 > (datafile 2, 3, 9 channel c2 tag=DF2)
10 > (datafile 6, 7, 8 channel c3 tag=DF3)
11 > alter system archive log current;
12 > }
■ Archive log 백업 받기
* Online Redo log file 자동 전환
* Archived Redo log file 복구 수행
* Archived Redo log file만 포함
* 항상 전체 백업이다.
RMAN > BACKUP
2 > FORMAT '/data/backup/rman/ar_%t_%s_%p'
3 > ARCHIVELOG ALL DELETE ALL INPUT;
■ 이미지로 백업 받기
* 디스크에만 쓸 수 있다.
* 즉시 복구에 사용할 수 있도록 복원할 필요가 없다.
* 단일 Data file, Archived Redo log file 또는 Control file의 물리적 복사본이다.
* 모든 블록을 포함한다는 점에서 운영체제 백업과 가장 유사하다.
* 증분 백업 전략의 일부가 될 수 있다.
RMAN > COPY
2 > DATAFILE '/home/oracle/oradata/testdb/users01.dbf'
3 > TO '/data/backup/rman/users01.dbf' tag=DF3,
4 > ARCHIVELOG 'arch_1060.arc'
5 > TO 'arch_1060.back';
■ 이미지 카피 병렬 처리
* 복수 채널을 가진 COPY 명령
- 3 files copied in parallel
RMAN > CONFIGURE DEVICE TYPE disk parallelism 4;
2 > COPY
3 > DATAFILE 1 TO '/data/backup/rman/df1.dbf',
4 > DATAFILE 2 TO '/data/backup/rman/df2.dbf',
5 > DATAFILE 3 TO '/data/backup/rman/df3.dbf',
- Second copy command
RMAN > COPY
2 > DATAFILE 4 TO '/data/backup/rman/df4.dbf',
■ 전체 데이터베이스 백업 받기
* 일관성 있는 완전 백업을 위해 데이터베이스를 mount한다.
* REPORT SCHEMA 명령을 사용하여 파일을 나열한다.
* COPY 명령을 사용하거나 각 Data file을 나열한다.
* COPY 명령을 사용하거나 각 Data file의 이미지 복사본을 만든다.
* LIST COPY 명령을 사용하여 복사본을 검증한다.
■ 증분 백업
* 전체 백업은 모든 Data file 블록을 포함한다.
* 차등 증분 백업은 레벨 n 이하에서 수정된 블록만 포함한다.
* 누적 증분 백업은 레벨 n-1 이하에서 수정된 블록만 포함한다.
■ No Archive log mode에서의 백업
1. Backup을 위한 충분한 공간이 있는지 확인
2. normal 또는 immediate 절을 사용하여 종료
3. Database mount
4. 자동으로 사용되지 않는 경우 복수 채널 할당
5. Backup 명령 실행
6. 백업의 완료 및 카탈로그화 여부 확인
7. 정상적으로 사용할 수 있도록 Database open
RMAN > BACKUP DATABASE FILESPERSET 3;
■ Control file 자동 백업
* CONFIGURE CONTROLFILE AUTOBACKUP 명령을 사용하여 활성화
* 활상화되면 RMAN은 BACKUP 또는 COPY 명령 후 Control file의 자동 백업 수행
* Backup에 기본 이름 제공
RMAN > CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN > SET CONTROLFILE AUTOBACKUP FORMAT FORM DEVICE TYPE disk
2 > TO 'controlfile_%F';
■ Backup Tag
* Backup Set 또는 이미지 복사본에 지정된 논리적 이름
- month_full_backup
Backup Set (Data file 1, 3 / Data file 2,4)
- week_full_backup
Backup Set (Data file 3 / Data file 4)
- wednesday_1_backup
Backup Set (Data file 1)
■ RMAN 관련 뷰
* V$ARCHIVED_LOG
* V$BACKUP_CORRUPION
* V$COPY_CORRUPION
* V$BACKUP_DATAFILE
* V$BACKUP_REDOLOG
* V$BACKUP_SET
* V$BACKUP_PIECE
■ RMAN 백업 예제
* 전체 데이터베이스 백업
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
BACKUP DATABASE
FORMAT '/data/backup/rman/%d_%p_%t';
}
* Tablespace 백업
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
ALLOCATE CHANNEL c2 DEVICE TYPE disk;
ALLOCATE CHANNEL c3 DEVICE TYPE disk;
BACKUP FILESPERSET = 3
TABLESPACE system, users, example
INCLUDE CURRENT CONTROLFILE;
}
* Data file 백업
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
BACKUP DATAFILE 1, 2, 3, 4, 5, 6;
}
* Current Control file 백업
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
BACKUP CURRENT CONTROLFILE
TAG = PM_wed_control;
}
* 다른 Object 백업시 Control file 백업 추가 방법
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
BACKUP Tablespace users
INCLUDE CURRENT CONTROLFILE;
}
* Incremental 백업
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
BACKUP INCREMENTAL LEVEL = 0
DATABASE;
}
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
BACKUP INCREMENTAL LEVEL = 1
TABLESPACE system
DATAFILE '/home/oracle/oradata/testdb/system01.dbf';
}
* Archived Redo log 백업
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
BACKUP ARCHIVELOG ALL
DELETE INPUT;
}
* Image Copy
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
COPY
DATAFILE 1 TO '/data/backup/rman/df_1.bak',
DATAFILE 2 TO '/data/backup/rman/df_2.bak',
DATAFILE 3 TO '/data/backup/rman/df_3.bak',
DATAFILE 4 TO '/data/backup/rman/df_4.bak',
CURRENT CONTROLFILE TO ''/data/backup/rman/control.bak';
}
'Oracle 10g > 10g - Admin II' 카테고리의 다른 글
Recovery Manager (RMAN) (0) | 2010.03.19 |
---|