728x90
DB2의 트랜잭션 로그는 LOGRETAIN, LOGARCHMETH1 매개변수를 설정함으로써 보관할 수 있다.
이러한 로그파일을 아카이브 로그라고 한다. 트랜잭션 로그는 DB에서 일어나는 변경사항에 대해 기록한 것이다.
따라서 전체 데이터가 없으면 의미가 없고, 전체 데이터가 있을 때 아카이브 로그를 적용하여 최대한 변경된 내용에 가깝게 데이터를 복구하는데 사용한다. 대부분 다음 순서와 같이 운영될 것이다.
1. 전체 백업
2. 로그 쌓임
3. 1번부터 다시 반복
전체 백업은 자주 수행하지 않을 수도 있다. 그래서 아카이브 로그를 오래 보관할 필요가 있는 곳도 있는데 이렇게 되면 아카이브 로그를 보관할 공간에 대한 부담이 점차 커지게 된다. 그래서 보통 이전 시점으로 복구할 가능성이 낮다고 하면 전체 백업을 수행하고 이전 전체 백업 이후로 쌓인 아카이브 로그 파일은 삭제한다.
아카이브 로그는 파일시스템에 저장되며 이는 현재 DB에서 사용중인 트랜잭션 로그 파일과는 위치를 분리하는 것이 안전하다.
직접 rm, del명령으로 아카이브 로그 파일을 삭제할 수도 있으나 좀 더 안전하게 삭제하려면 prune 명령을 사용한다.
prune 명령을 사용하는 방법은 다음과 같다.
>>-PRUNE--------------------------------------------------------> >--+-HISTORY--timestamp--+-------------------+--+------------+-+->< | '-WITH FORCE OPTION-' '-AND DELETE-' | '-LOGFILE PRIOR TO--log-file-name---------------------------'
prune 명령은 시점을 지정하여 복구 실행기록 파일을 정리할 때 사용한다.
db2 prune history 20120819 와 같이 사용할 경우 이 날짜 이전의 모든 기록은 삭제된다.
db2 prune history 20120819 and delete 옵션을 사용했을때는 그 시점 이전의 기록을 참조하여 연관된 아카이브 파일이 더 이상 필요하지 않으면 삭제한다.
logfile prior to 옵션은 지정한 로그파일 이전의 로그를 삭제하는 옵션으로 logretain 매개변수가 recovery로 설정되어 있을 때만 사용가능하다. logretain을 설정했을 때는 logarchmeth1 또한 logretain으로 설정되고 현재 사용중이 로그파일과 아카이브 로그가 같은 위치에 저장되므로 이 옵션으로 아카이브 로그를 삭제하는 편이 안전하다. 이 옵션으로 아카이브 로그를 삭제하면 현재 사용중인 로그 파일은 삭제하지 않는다.
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0001992.htm
728x90
'Db2 > Db2 reference' 카테고리의 다른 글
Moving data using the CURSOR file type (0) | 2013.05.20 |
---|---|
9.7부터 변경된 CHAR 스칼라 함수 동작 (dec_to_char_fmt) (0) | 2013.02.18 |
Restoring a table space level backup with redirect (0) | 2012.08.12 |
db2pd 명령을 사용하여 모니터링 및 문제점 해결 (9.7) (0) | 2012.08.09 |
Kernel parameter tuning on HP-UX, Oracle Solaris and Linux (0) | 2012.07.21 |