[DB2] Backup & Restore(Single DB)

참고사항

# Offline Backup, Offline Backup의 의미

Online => 사용자가 접속된 상태에서 백업

Offline => 사용자가 없는 상태에서 백업

 

1. Archive Logging(Online : 별도 로그 디렉토리)로 변경하는 방법

*LOGRETAIN을 ON으로 하거나 LOGARCHMETH1가 다른 방식이면 Archive Logging라고 생각하면 됨.

LOGRETAIN ON시 다음과 같이 변경됨.

$ db2 update db cfg for sample using LOGRETAIN on
Log retain for recovery enabled             (LOGRETAIN) = RECOVERY
First log archive method                 (LOGARCHMETH1) = LOGRETAIN

후에 db2를 deactivate 하고 activate시 backup pending이 떨어짐.

$ db2 backup db sample to /dev/null

참고(DB2 Information Center에서 긁어옴)  : 로그 보유(logretain)

이 구성 매개변수는 logarchmeth1으로 교체되었습니다. DB2의 이전 버전과의 호환성을 위해 아직 지원됩니다.

그러므로.. 가능하면 사용하지 말것!!!!!

 

특정 디바이스나 위치로 로그파일을 옮길경우 다음과 같이 변경함.

$ db2 update db cfg for sample using LOGARCHMETH1 DISK:/jhlee/jhlsle/archive
Log retain for recovery enabled             (LOGRETAIN) = RECOVERY
First log archive method                 (LOGARCHMETH1) = DISK:/jhlee/jhlsle/archive/

후에 db2를 deactivate 하고 activate시 backup pending이 떨어짐.

$ db2 backup db sample to /dev/null

참고 : LOGARCHMETH1 옵션에 관련된 모든것. (logbufsz, logfilsiz등.)

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.ha.doc/doc/r0006082.html

 

userexit를 ON으로 설정했을 경우(특정 프로그램을 이용 외부 디바이스로 설정할 경우 사용됨.)

다음 사이트 참고 : http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.ha.doc/doc/c0024701.html

$db2 update db cfg for sample using USEREXIT on
Log retain for recovery enabled             (LOGRETAIN) = RECOVERY
First log archive method                 (LOGARCHMETH1) = USEREXIT

참고 : LOGARCHMETH1를 DISK모드로 변경후 userexit를 on 했을시 기존에 LOGARCHMETH1에서 설정한

디렉토리로 log가 떨어짐.

 

기본 로그 쌓이는 위치를 변경하고 싶을시.

$ db2 update db cfg for sample using NEWLOGPATH <경로>

 

2. Backup 방법

DB Full Backup

- backup db <db명> to 경로 (경로 생략 가능) -> Offline, Online모두 가능

- db2 backup db sample online : archive log 모드에서만 사용가능.

 

Incremental Backup : archive log 모드에서만 사용가능. - Fullbackup 이후 변경된 부분만 Backup Image에 저장.

Track modified pages                         (TRACKMOD) = OFF -> ON으로 설정되어 있어야 함.

- backup db <DB명> INCREMENTAL

- backup db <DB명> ONLINE incremental

- backup db <DB명> online incremental TO <디렉토리명>

- backup db <DB명> online incremental to <디렉토리명> INCLUDE LOGS

 

Delta Backup : archive log 모드에서만 사용가능. - Fullbackup 혹은 Incremental Backup이후 증가분만 백업.

Track modified pages                         (TRACKMOD) = OFF -> ON으로 설정되어 있어야 함.

- backup db <DB명> INCREMENTAL DELTA

- backup db <DB명> ONLINE incremental delta

- backup db <DB명> online incremental delta TO <디렉토리명>

- backup db <DB명> online incremental delta to <디렉토리명> INCLUDE LOGS

 

Tablespace 단위 Backup : archive log 모드에서만 사용가능.

EX)db2 "backup db sample tablespace(TS명)" 

- backup db <DB명> tablespace (<TS명>) ONLINE

- backup db <DB명> tablespace (<TS명>) onlineTO <디렉토리명>

- backup db <DB명> tablespace (<TS명>) online INCREMENTAL

- backup db <DB명> tablespace (<TS명>) online INCREMENTAL DELTA

 

Backup 확인법

- list history backup for <DB명>

 

3. Recovery(Restore) 방법.

※ Crach Recovery : 정전등이나 인스턴스 비정상 종료.

- db2 get db cfg | grep -i autorestart : on 여부 확인.

- db2 restart db sample

 

※ Restore Recovery : 원격 혹은 이전 DB 복구 방법.

Circular Logging인지 환경변수 확인. -> Full DB Offline Backup만 가능.

==========================================================

User exit for logging enabled                (USEREXIT) = OFF -> OFF확인

Log retain for recovery enabled             (LOGRETAIN) = OFF -> OFF확인

First log archive method                 (LOGARCHMETH1) = OFF -> OFF확인

==========================================================

- restore database <DB명> : Backup디렉토리에서 백업파일이 하나만 있는경우

- restore database from / dbbackup : Backup디렉토리에서 백업파일이 하나만 있는경우

- restore database taken at 1996090988811 : Backup디렉토리에서 여러개의 타임스탬프 Full backup Image중 특정 시간대의 Fullbackup image를 이용.

- restore database <DB명> into <신규DB명>

 

※ ROLLFORWARD Recovery : 

RESTORE DB 명령어로 버전복구를 완료하고, ROLLFORWARD DB 명령어로 로그디렉토리에 제공된 

아카이브 로그파일들을 차례로 이용하여 과거의 UOW에 의한 변경내역을 복구. 아카이브 로깅 방식에서만 지원.

 

◇ Full DB Offline Backup인경우 ◇

log를 전혀 적용시키지 않는 경우

- db2 restore database <DB명> without rolling forward

특정 Timestamp 시간까지의 log만 적용하는 경우

- db2 restore database <DB명>

- db2 "rollforward database <DB명> to 1996-09-09-09:30:00 and stop"

현재까지의 log를 모두 적용시키는 경우

- db2 restore database <DB명>

- db2 "rollforward database <DB명> to end of logs and stop"

 

◇ Full DB on-line backup image인 경우 반드시 log 적용 ◇

특정 CPU 시간까지의 log만 적용하는 경우

- db2 restore database <DB명>

- db2 "rollforward database <DB명> to 1996-09-09-09:30:00 and stop" 혹은

db2 "rollforward database <DB명> to 2005-02-16-16.16.15.000000 using local time and stop"

* 참고 : CPU Time : 현재시간에서 9시간을 빼야함. (현재시간 - 9 = CPU Time)

현재까지의 log를 모두 적용시키는 경우

- db2 restore database <DB명>

- db2 "rollforward database <DB명> to end of logs and stop"

Tablespace Bacup인 경우 모든 로그를 다 적용시켜야 한다.

- db2 restore database SAMPLE

- db2 "rollforward database <DB명> to end of logs and stop"

혹은

- db2 restore db <DB명> tablespace (<TS명>) online -> db2 쓸경우 ""로 묶어야 함.

- db2 "rollforward database <DB명> to end of logs and stop tablespace (<TS명>) online

 

확인

db2 list history rollforward for <DB명>

 

4. List History 확인법(Backup 및 기타 여러가지 작업내역 확인)

db2 list history ALL for <DB명>

db2 list history BACKUP all for <DB명>

db2 list history ROLLFORWARD all for <DB명>

db2 list history backup SINCE <시간소인> for <DB명>

db2 list history rollforward CONTAINING <스키마명>.<테이블명> for <DB명>

db2 list history REORG all for sample

 

5. PRUNE HISTORY(복구실행기록파일에서특정<시간소인> 이전의기록을제거)

$ db2 prune history <yyyy>

$ db2 prune history <yyyymmdd>

$ db2 prune history <yyyymmddhhmmss>

$ db2 prune history <yyyymmddhhmmss> WITH FORCE OPTION : 복구기록파일의 모든항목을 완전히 제거

$ db2 prune history <yyyymmddhhmmss> AND DELETE :

옵션을 이용하면 복구기록파일에서 항목이 삭제되고, 해당항목과 관련된 아카이브 로그 파일도 물리적으로 제거

 

- prune logfile prior to 명령어로지정한번호보다작은번호의로그파일을모드제거

(LOGRETAIN 변수가ON으로 되어 있어야 함.)

First log archive method                 (LOGARCHMETH1) = LOGRETAIN

$ db2 prune logfile prior to <로그파일명>

 

- update dbm cfg 명령어를 이용하여 REC_HIS_RETENTN 데이터베이스 구성변수를 변경.

(기간은 1일단위로 지정. 기본값은366일.)

Recovery history retention (days)     (REC_HIS_RETENTN) = 366

 

 

더 추가적인 옵션을 원할시..

backup database :

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.admin.config.doc/doc/r0011448.html

restore database :

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0001976.html

rollforward database :

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0001978.html

 

 

도움이 되셨다면 광고클릭 한번 부탁드립니다.

'Databases > DB2' 카테고리의 다른 글

[DB2] DB2 - DB2 Federation 서버 구성  (0) 2020.08.04
[DB2] Federation 서버 구성  (0) 2020.08.02
[DB2] DB2 로그들  (0) 2020.07.31
[DB2] Table(Range) Partition 기본 테스트  (0) 2020.07.29
[DB2] 9.7버전 FixPack 적용방법  (0) 2020.07.27

Designed by JB FACTORY