참고 - 오라클 백업과 복구(서진수 저)
RMAN (Recovery Manager)
: ASM(Automatic Storage Management) 기반의 백업 및 복구를 위한 유틸리티
: RMAN은 백업이 시작되기 전에 백업에 충분한 공간이 있는지 미리 확인하지 않고 필요할 때마다 공간을 재할당하는 방식 (50M 씩)
-> 속도가 빠르지만 디스크 여유 공간이 부족할 경우 백업을 하다가 에러 발생
: 백업 가능 대상
- Database (all data file과 현재 control file)
- Tablespace
- Datafile (current 또는 Image copy)
- Archived log file
- Control file (current 또는 Image copy)
: 백업 불가능 대상
- Online redo log file
- init.ora
- Password file
- listener.ora
- tnsnames.ora
- RMAN의 장점
1. 증분 레벨(Incremental Level) 백업 기능 지원
2. Block Change Tracking 기능
3. 백업 수행 중 훼손된 블록 감지
- RMAN Memory 구조
: 백업 및 복구를 수행할 때 기본적으로 PGA를 사용하며 PGA 공간이 부족할 경우 SGA를 사용하여 백업 수행.
: 백업 시 사용하는 Input Buffer와 백업파일에 저장하기 위해 사용하는 Output Buffer 가 있음
① 메모리에 각 Data file별로 Input buffer가 생성됨. 이 Input buffer에 Data file에서 백업 받아야 할 블록을 가져 옴
② 여러 개의 Input buffer 중 하나가 가득 차면 Output buffer로 블록을 복사
③ Output buffer에는 여러 Data file의 블록이 혼재하게 되며 Output buffer 역시 가득 차게 되면 Backup Set에 내려씀
- RMAN packages
1. SYS.DBMS_RCVMAN
: 백업과 복구 작업을 수행하기 위해서 Control file에 접근해서 관련 정보(파일의 위치와 크기 및 시간/checkpoint 정보)를 RMAN에게 전달하기 위해서 사용되는 패키지
-> 작업의 부하와 스케줄 등을 channel 별로 조정
2. SYS.DBMS_BACKUP_RESTORE
: 실제 Data file, Archive log file, Control file의 백업을 수행하는 패키지
- Recovery Catalog
: RMAN으로 백업 복구 작업을 하고 관련 정보를 저장해 두는 저장소
: RMAN Catalog Server가 없을 경우 RMAN은 Target Database Server의 control file에 해당 정보를 저장
: 접속 방법
1) Catalog server 사용 : rman target / catalog rcuser/rcuser@rcserver
2) Catalog server 사용 X : rman target /
- Channel 할당
: channel => 백업과 복구를 하는 경로
1. 자동 channel
: 별도의 경로를 주지 않아도 정해진 위치로 백업을 수행 (=default channel)
: 설정
RMAN> configure default device type to disk; (db_recovery_file_dest 경로로 설정)
RMAN> configure channel device type disk format '/data/backup/rman/%U_%T'; (특정 경로로 설정)
%U는 파일명이 중복되지 않도록 RMAN이 생성한 Unique한 번호
%T는 백업 날짜 표시
2. 수동 channel
: 백업 시에 수동으로 경로를 설정
: 수동 channel을 사용할 경우 Retention policy들이 설정되어 있더라도 해당 정책들이 적용되지 않음 => 관리자가 수동으로 관리해야 함
- RMAN 백업 종류
1. Backup set으로 백업 수행 (Default)
: RMAN만이 알 수 있는 형태로 백업 파일을 생성
2. Image copy로 백업 수행
: OS 명령어로 begin backup 하는 것과 가장 유사한 방법
: RMAN 백업의 장점인 사용중인 블록만 백업 받는다거나 증분 백업 받는 기능 등 사용 불가
: 예시
RMAN> copy
2> datafile '/oracle/oradata/ORCL/users01.dbf'
3> to '/data/backup/rman/users01.dbf';
- 증분 백업 (Incremental backup) - Enterprise Edition에서만 지원
: 이전에 백업 받았던 백업 파일과 비교하여 변경된 부분만 골라서 백업을 수행
: 10g 버전 부터는 Block change tracking 기능(데이터 블록들의 변경된 블록만 추적하는 기능)이 지원되어 더 빠른 Incremental backup이 가능
: 백업속도가 빠르다는 장점은 있지만 복구할때는 여러개의 증분백업을 불러와야 함
- 차등 증분 백업
: 백업 받을 때 설정했던 숫자가 자기보다 작거나 같으면 그 시점부터 지금까지 모든 데이터를 백업
- 누적 증분 백업
: 백업 받을 때 설정했던 숫자가 작은 경우에만 그 시점부터 지금까지 모든 데이터를 백업
: 예제
1) 일요일에 level 0으로 전체 백업
RMAN> run{
2> allocate channel c1 type disk;
3> allocate channel c2 type disk;
4> backup
5> incremental level 0
6> database
7> format '/data/backup/rman/%U_%T';
8> }
2) 월요일에 level 3으로 users tablespace만 차등 증분 백업
RMAN> run{
2> allocate channel c1 type disk;
3> backup
4> incremental level 3
5> tablespace users;
6> }
3) 수요일에 level 3으로 누적 증분 백업
RMAN> run{
2> allocate channel c2 type disk;
3> backup
4> incremental level 3 cumulative
5> tablespace example;
6> }
- MultiSection Backup (11g NF)
: 하나의 큰 파일을 균등하게 분할해서 백업속도 향상 (하나의 큰파일을 여러개의 프로세스가 동시에 백업 받을 수 있는 유용한 기능)
: 예시
RMAN> backup as compressed backupset
2> section size 100m
3> format '/data/backup/rman/%U_%T'
4> datafile 1;
* 백업 진행 확인 쿼리
SQL> select sid, serial#, context, sofar, totalwork, round(sofar/totalwork*100,2) "%_COMPLETE"
2 from v$session_longops
3 where opname like 'RMAN%'
4 and opname not like '%aggregate%'
5 and totalwork != 0
'Study > Backup&Recovery' 카테고리의 다른 글
RMAN 복구 (0) | 2015.08.03 |
---|