RECOVERY MANAGER (RMAN)
: 오라클에서 제공하는 백업 및 복구 작업을 수행하고, 백업 전략 관리를 자동화하는 솔루션
- 특징 :
- 증분 레벨 (INCREMENTAL LEVEL) 백업 기능 지원
- BLOCK CHANGE TRACKING 기능
- 백업 수행 중 훼손된 블록 감지
- 자주 실행하는 작업을 스크립트로 저장 가능
- 사용 중인 블록만 백업
- 백업 수행시 압축 지원
- 제한 사항 :
- OPEN 상태에서 백업을 받으려면 DB가 ARCHIVE LOG MODE 이어야 한다.
- DB가 MOUNT 또는 OPEN 상태여야 한다.
- 백업 가능 대상
- DATABASE
- TABLESPACE
- DATAFILE
- ARCHIVED REDO LOG
- CONTROL FILE
+) ONLINE REDO LOG에 대해서는 백업하지 못하므로 ARCHIVE화 해서 백업을 한다.
- RMAN 백업 종류
1. BACKUP SET으로 백업 수행 (DEFALUT)
: RMAN이 백업 파일을 만들 때 RMAN만이 알 수 있는 형태로 백업 파일을 만든다.
+ ) BACKUP PIECE : BACKUP SET의 용량이 너무 크면 분할해서 여러 개의 파일로 백업받을 수 있는데,
분할되는 하나의 백업 파일을 BACKUP PIECE라고 한다.
– 블록 압축 :
RMAN은 백업 시 불필요한 데이터 블록들을 백업 대상에서 제외시키는 블록 압축을 수행하여, 백업 파일의 용량을 감소시킨다. RMAN은 BACKUP SETS를 생성할 때 두 타입의 블록 압축을 사용한다.
- 널 블록 압축 :
- 데이터가 저장된 적이 없는 블록을 제외하고 백업
- 미사용 블록 압축 :
- 데이터가 저장된 적이 있지만 백업 시점에는 오브젝트가 할당되어 있지 않은 블록을 제외하고 백업
- 이 방법으로 수행하기 위해서는 테이블 스페이스를 지역 관리 테이블 스페이스로 생성해야 한다.
2. IMAGE COPY로 백업 수행
: begin backup과 비슷한 개념
사용중인 블록만 백업 받기, 증분 백업 받기 불가
- 증분 백업 :
- 이전 백업 이후에 변경된 블록들만 백업
(사용자 백업에 비해 적은 용량의 백업 파일을 생성)
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=whdahek&logNo=220318335960
- 차등 증분 백업 :
백업 받을 때 설정했던 숫자가 자기보다 작거나 같으면 그 시점부터 지금까지 모든 데이터를 백업
ex ) 요일마다 LEVEL을 설정하고, 설정한 요일과 이 전 날(들)의 LEVEL을 비교하여 설정한 LEVEL보다 작거나 같은 날에 백업 진행. (일-월), (월-화), (화-수) . . .
- 누적 증분 백업 :
백업 받을 때 설정했던 숫자가 작은 경우에만 그 시점부터 지금까지 모든 데이터를 백업
ex ) 요일마다 LEVEL을 설정하고, 설정한 요일과 이 전 날을 비교하여 해당 요일의 LEVEL 이 작으면 백업을 수행하는 것은 동일하지만, 범위가 누적된다. (일-월), (일-월-화), (일-월-화-수), (목-금), (목-금-토) ...
백업 방법
- BACKUP
: BACKUP [BACKUP-TYPE] [OPTION]
- BACKUP-TYPE :
DATABASE : 데이터베이스 전체 백업
TABLESPACE 'TABLESPACE NAME' : 지정한 테이블스페이스만 백업
DATAFILE '파일명' : 특정 데이터 파일만 백업
DATAFILECOPY '파일명' : 지정한 데이터파일을 복사하여 백업
ARCHIVELOG ALL : 백업시 모든 아카이브 파일도 함께 백업
CURRENT CONTROLFILE : 백업시 현재 컨트롤 파일도 함께 백업
CONTROLFILECOPY '파일명' : 현재 컨트롤 파일을 복사하여 백업
- OPTION :
TAG='내용' : 현재 백업절차에 대한 주석을 작성
FILESPERSET=n : 백업조각의 수를 지정
DELETE INPUT : 백업 후 아카이브 파일들을 삭제
FORMAT = '파일 경로와 파일명' : 백업파일의 경로와 파일명을 지정
-- 독립형
: RMAN> prompt에 1개의 명령어만 들어간다
backup as compressed backupset database
format '/data/backup/rman/%U_%T';
-- 작업형
: 프로그램의 스크립트처럼 여러 개의 명령어를 한꺼번에 사용할 수 있다.
run {
allocate channel ch1 device type disk
format '/data/backup/rman/%U_%T' ;
backup as compressed backupset database ;
}
-- backup type별 비교
100mb짜리 datafile에서 80mb만 사용하고 있는 경우
- Image Copy
- 1:1 file match가 되므로 100mb 파일이 통째로 cp된다.
- BackupSet
- backup 결과 1개의 파일이 생성된다
- 사용된 공간 만큼 까지만 BackupSet 에 기록한다. - > 공간의 효율성이 좋다
- Compressed Backup
- 파일 중간중간 사용하고 있지 않은 빈 블럭을 제외하고 백업 수행
- 빈 블록이 차지하고 있는 공간에 따라 압축도가 달라진다
- 복구 시 빈 블럭의 위치까지 원복하기 때문에 restore할 경우 속도가 많이 떨어진다.
- Archived Redo Log File 백업
인스턴스가 MOUNT 혹은 OPEN 상태일 때 가능하다.
Backup Set에는 Archived Log File만 포함될 수 있으며 언제나 Full 백업한다.
backup archivelog all;
backup as compressed backupset archivelog all;
▶ Archived redo log 백업
backup database plus archivelog;
▶ 데이터 파일 백업시 Archived redo log도 포함
backup database plus archivelog delete input;
▶ database 전체 백업 및 archive log 백업 후 archive log file 삭제
backup as compressed backupset database plus archivelog
format '/data/backup/rman/%U_%T';
▶ 전체 데이터파일을 압축+백업하면서 archive log file 함께 백업
backup archivelog
from time 'sysdate - 9/24'
format 'E:\\Orabackup\ar_%s_%p_%t';
▶ 특정 시간 이후 생성된 archive log backup
-- sysdate
sysdate - 1 : 현재 날짜와 시간보다 1일전
sysdate - 7 : 현재 날짜와 시간보다 7일전
sysdate - 1/24 : 현재 날짜와 시간보다 1시간 전
sysdate - 9/24 : 현재 날짜와 시간보다 9시간 전
sysdate - 5/3600 : 현재 날짜와 시간보다 5분 전
backup format '/disk1/backup/ar_%t_%s_%p' arhivelog
from sequence=234
▶ 234 이상의 #를 가진 backup file만 backup 가능
- Control File 백업
인스턴스가 MOUNT 혹은 OPEN 상태일 때 가능하다.
CONFIGURE CONTROLFILE AUTOBACKUP ON
▶ 데이터베이스 백업 후 자동으로 control file 백업
backup current controlfile;
backup database include current controlfile;
▶ Control file 백업
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DOST TO 'CTL_%F';
SET CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO 'CTL_%F';
▶ Control file 백업 포맷 지정
-- 백업 포맷
Control file 기본 백업 포맷 : %F
%F : IIIIIIIIII-YYYYMMDD-QQ
IIIIIII : decimal로 표현된 DBID ( target DB에 쉽게 접속하기 위함)
QQ : hexadecimal로 표현된 sequence (00 ~ FF)
- SPFILE 백업
인스턴스가 MOUNT 혹은 OPEN 상태일 때 가능하다.
인스턴스가 PFILE을 사용하고 있다면 백업 불가능
BACKUP SPFILE;
BACKUP SPFILE FORMAT 'E:\RMAN\spfile_%d_%s_%T.bak';
BACKUP DATABASE FILESPERSET 4 FORMAT 'E:\RMAN\%d_%s_%p_%c_%t.bak';
SPFILE FORMAT 'E:\RMAN\spfile_%d_%s_%T.bak';
...
restore spfile to '<path with filename>' from autobackup;
restore spfile to pfile '<your path and filename>' from autobackup;
RMAN 백업 전 환경 설정
- 채널 설정하기
- Channel : 백업/복구 하는 경로. 백업시 반드시 channel을 할당해주어야 한다.
- 자동 channel 설정
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
→ DEFAULT DEVICE가 파라미터 파일의 db_recovery_file_dest 파라미터 경로로 설정된다.
CONFIGURE CHANNEL DEVICE TYPE DISK
FORMAT ‘/data/backup/rman/%U_%T’;
→ /data/backup/rman 디렉토리에 백업 파일이 생성된다.
2. 수동 channel 설정
BACKUP TABLESPACE EXAMPLE FORMAT ‘/data/backup/open/%U_%T’;
→ 해당 방법으로 설정함
- DEFAULT VALUES
- SHOW ALL;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
▶ Backup 보관 주기나 백업본 갯수를 설정
CONFIGURE BACKUP OPTIMIZATION OFF; # default
▶ 이미 Backup된 항목들이 있다면 skip
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
▶ Default backup device 설정
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
▶ Backup이나 Copy 등의 명령 수행 후 자동으로 control file backup 수행
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
▶ Autobackup 되는 control file의 기본 format 변경
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
▶ Backup시 몇개의 채널을 할당할 지 설정
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
▶ datafile, control file의 backup set의 copy본 갯수 설정
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
▶ Archivelog file의 backup set의 copy본 갯수 설정
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
▶ backup set의 maximum size 설정
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
▶ 모든 백업이 암호화 되도록 설정
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
▶ 기본 백업 암호화 알고리즘을 AES128 비트 암호화로 구성함
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
▶ 데이터 백업 파일을 백업셋을 이용할 시 압축 방식을 지정함
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
▶ RMAN 출력 로그 저장기간을 지정된 일 수로 구성함
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
▶ Flash recovery area의 archived redo log에 대한 삭제 여부를 설정
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/oracle/product/192/dbs/snapcf_TESTDB.f'; # default
▶ RMAN은 resync시 생성되는 임시 snapshot control file의 이름을 지정함
- 추가 환경설정
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
▶ BACKUP 유지 정책 설정 - 30일간의 백업만 유지
- Retention Policies (2가지 중에 1가지만 선택) -> default : redundancy 1 로 설정되어 있음
: 보존할 백업과 백업 보존 기간을 설명. Retention Policy는 각각 단독으로 사용할 것.
1. Recovery Window (기간을 기준으로 백업 결정)
RMAN> configure retention policy to recovery window of 7 days;
-- 데이터 파일에 대해서 7일 이내에 백업한 파일이 존재해야 함
-- 7일이 넘어간 백업 본에 대해서는 필요 없음을 명시 (7일 간만 유지)
2. Redundancy (file 갯수를 기준으로 백업 결정)
RMAN> configure retention policy to redundancy 2;
-- 정기적으로 백업 받아온 내용에 대해서 2개의 dbf 파일에 대해서만 유지. 나머지는 삭제
3. 현재 설정되어 있는 Retention Policy 확인
RMAN> show retention policy;
참고
'Dev > Oracle' 카테고리의 다른 글
[Oracle] 복구한 DB 원복 (0) | 2022.06.20 |
---|---|
[Oracle] RMAN 복구 (0) | 2022.06.19 |
[Oracle] 조인 정리 (0) | 2022.06.16 |
[Oracle] 대기 이벤트 (0) | 2022.06.15 |
[Oracle] 계층구조 쿼리 (0) | 2022.06.14 |
댓글