증분 백업 (Incremental backup)
: 이전에 백업 받았던 백업파일과 비교해서 변경된 부분만 골라서 백업을 수행
: 시나리오를(지정해준 level 번호) 따로 볼수 있는 방법은 없다. 관리자가 본인 나름대로 시나리오를 잘 짜고 관리해야 한다.
1. 차등 증분 백업 (과거숫자 =< 현재숫자)
<그림 : 차등 증분 백업>
: 백업 받을 때 설정했던 level 숫자가 자기보다 작거나 같으면 그 시점부터 지금까지 모든 데이터를 백업
2. 누적 증분 백업 (과거숫자 < 현재숫자)
<그림 : 누적 증분 백업>
: 백업 받을 때 설정했던 level 숫자가 자기보다 무조건 작으면 그 시점부터 지금까지 모든 데이터를 백업
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 실습 시작
실습 : 차등 증분 백업
1. 일요일 - level 0 으로 데이터베이스 전체 백업
RMAN>
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup
incremental level 0
database
format '/data/backup/rman/%U_%T';
}
2. 월요일 - level 3 으로 users tablespace 만 차등 증분 백업
RMAN>
run {
allocate channel c1 type disk;
backup
incremental level 3
tablespace users;
}
3. 수요일 - level 3 으로 누적 증분 백업
RMAN>
run {
allocate channel c2 type disk;
backup
incremental level 3 cumulative
tablespace example;
}
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 실습 끝
3. Block change tracking 기능 활성 화 후 증분 백업 수행
: 데이터 블록들의 변경된 블록만 추적하는 기능
블록들의 변경사항은 특정 파일에 저장 되어 관리됨
Oracle 10g Enterprise Edition
: 각자의 환경 상 속도적으로 느려질 수 있다.
1. 설정하기
① 활성화
SQL> alter database enable block change tracking
2 using file '/data/backup/rman/block_tracking.txt';
$ cd /data/backup/rman
$ ls -lSh *.txt
$ vi block_tracking.txt
^@^@^@^@^@^@^@^@^@^@^@^@^@^@
바이너리 파일임.
② 비활성화
SQL> alter database disable block chang tracking;
③ 활성화 상태 조회
SQL> col status for a10
SQL> col filename for a50
SQL> col MB for 999999
활성화 전
SQL> select status, filename, bytes/1024/1024 MB
2 from v$block_change_tracking;
STATUS FILENAME MB
---------- -------------------------------------------------- -------
DISABLED
활성화 후
SQL> select status, filename, bytes/1024/1024 MB
2 from v$block_change_tracking;
STATUS FILENAME MB
---------- -------------------------------------------------- -------
ENABLED /data/backup/rman/block_tracking.txt 11
④ RMAN의 기능 사용여부 조회
: v$backup_datafile의 used_change_tracking 컬럼을 조회 해보면 된다.
SQL> save bt.sql
select file#,
avg(datafile_blocks) "blocks",
avg(blocks_read) "reads",
round(avg(blocks_read/datafile_blocks) * 100,3)|| '%' as "Read for Backup"
from v$backup_datafile
where incremental_level > 0
and used_change_tracking = 'YES'
group by file#
order by file#;
no rows selected ← 아직 사용 안했음
→ 다시 백업 후 조회
RMAN>
run {
allocate channel c1 type disk format '/data/backup/rman/%U_%T';
backup
incremental level 3
tablespace users;
}
SQL> @bt
FILE# blocks reads Read for Backup
---------- ---------- ---------- -----------------------------------------
4 1600 1 .063%
설명 : 4번파일에 총 1600개의 블록이 있다. 그중 1개를 block tracking 을 사용함.
▶ 이 기능을 사용하면 incremental backup이 더 빨리 수행 될 수 있다.
: 이전에 백업 받았던 백업파일과 비교해서 변경된 부분만 골라서 백업을 수행
: 시나리오를(지정해준 level 번호) 따로 볼수 있는 방법은 없다. 관리자가 본인 나름대로 시나리오를 잘 짜고 관리해야 한다.
1. 차등 증분 백업 (과거숫자 =< 현재숫자)
<그림 : 차등 증분 백업>
: 백업 받을 때 설정했던 level 숫자가 자기보다 작거나 같으면 그 시점부터 지금까지 모든 데이터를 백업
2. 누적 증분 백업 (과거숫자 < 현재숫자)
<그림 : 누적 증분 백업>
: 백업 받을 때 설정했던 level 숫자가 자기보다 무조건 작으면 그 시점부터 지금까지 모든 데이터를 백업
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 실습 시작
실습 : 차등 증분 백업
1. 일요일 - level 0 으로 데이터베이스 전체 백업
RMAN>
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup
incremental level 0
database
format '/data/backup/rman/%U_%T';
}
2. 월요일 - level 3 으로 users tablespace 만 차등 증분 백업
RMAN>
run {
allocate channel c1 type disk;
backup
incremental level 3
tablespace users;
}
3. 수요일 - level 3 으로 누적 증분 백업
RMAN>
run {
allocate channel c2 type disk;
backup
incremental level 3 cumulative
tablespace example;
}
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 실습 끝
3. Block change tracking 기능 활성 화 후 증분 백업 수행
: 데이터 블록들의 변경된 블록만 추적하는 기능
블록들의 변경사항은 특정 파일에 저장 되어 관리됨
Oracle 10g Enterprise Edition
: 각자의 환경 상 속도적으로 느려질 수 있다.
1. 설정하기
① 활성화
SQL> alter database enable block change tracking
2 using file '/data/backup/rman/block_tracking.txt';
$ cd /data/backup/rman
$ ls -lSh *.txt
$ vi block_tracking.txt
^@^@^@^@^@^@^@^@^@^@^@^@^@^@
바이너리 파일임.
② 비활성화
SQL> alter database disable block chang tracking;
③ 활성화 상태 조회
SQL> col status for a10
SQL> col filename for a50
SQL> col MB for 999999
활성화 전
SQL> select status, filename, bytes/1024/1024 MB
2 from v$block_change_tracking;
STATUS FILENAME MB
---------- -------------------------------------------------- -------
DISABLED
활성화 후
SQL> select status, filename, bytes/1024/1024 MB
2 from v$block_change_tracking;
STATUS FILENAME MB
---------- -------------------------------------------------- -------
ENABLED /data/backup/rman/block_tracking.txt 11
④ RMAN의 기능 사용여부 조회
: v$backup_datafile의 used_change_tracking 컬럼을 조회 해보면 된다.
SQL> save bt.sql
select file#,
avg(datafile_blocks) "blocks",
avg(blocks_read) "reads",
round(avg(blocks_read/datafile_blocks) * 100,3)|| '%' as "Read for Backup"
from v$backup_datafile
where incremental_level > 0
and used_change_tracking = 'YES'
group by file#
order by file#;
no rows selected ← 아직 사용 안했음
→ 다시 백업 후 조회
RMAN>
run {
allocate channel c1 type disk format '/data/backup/rman/%U_%T';
backup
incremental level 3
tablespace users;
}
SQL> @bt
FILE# blocks reads Read for Backup
---------- ---------- ---------- -----------------------------------------
4 1600 1 .063%
설명 : 4번파일에 총 1600개의 블록이 있다. 그중 1개를 block tracking 을 사용함.
▶ 이 기능을 사용하면 incremental backup이 더 빨리 수행 될 수 있다.
'Oracle > Oracle - 백업&복구' 카테고리의 다른 글
백업 & 복구 32 - RMAN : 복구 (2) | 2012.02.24 |
---|---|
백업 & 복구 31 - RMAN : RMAN 백업 2 (0) | 2012.02.24 |
백업 & 복구 29 - RMAN : RMAN 백업 1 (0) | 2012.02.23 |
백업 & 복구 28 - RMAN : Channel 할당하기 (0) | 2012.02.22 |
백업 & 복구 27 - RMAN : Recovery Catalog DB 관리하기 (1) | 2012.02.22 |