pajama

Informix hoarder

[교육정리] transaction log

댓글 0

Db2/Db2 reference

2011. 3. 17.

1. transaction log 관련 파라미터


Number of primary log files                   (LOGPRIMARY) = 5

Number of secondary log files               (LOGSECOND) = 10


log file 수는 최대 255개로 제한된다.
secondary log file의 수는 long transaction등 transaction log가 다량으로 발생하였을 때를 대비하여 설정한다.
log file 수가 부족하면 transantion이 롤백되면서 에러가 발생한다.


2. transaction log archive

User exit for logging enabled                 (USEREXIT) = OFF
Log retain for recovery enabled             (LOGRETAIN) = OFF
First log archive method                       (LOGARCHMETH1) = OFF

logretain, userexit은 하위버전과의 호환성을 위한 파라미터이므로 사용하지 않을 것을 권장
logarchmeth1 에 아카이브 디렉토리 지정
(logretain 및 userexit는 사용되지 않으며 DB2 UDB 8.2부터  logarchmeth1 으로 대체되었다. logretain을 RECOVERY로 또는 userexit를 on으로 설정하면, logarchmeth1은 자동으로 logretain 또는 userexit로 설정된다.)

db2 update db cfg <DB명> using LOGARCHMETH1 DISK:<경로명>
아카이브 로깅 모드로 변경시 SQL1363W 경고를 받았다면 데이터베이스를 재활성화한다.

DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.
SQL1363W  One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, all applications must disconnect from this database before the changes become effective.

재활성화하면 다음과 같은 오류가 발생한다.
SQL1116N  A connection to or activation of database "<DB명>" cannot be made because of BACKUP PENDING.  SQLSTATE=57019

아카이브 로깅 모드로 변경하면 백업 보류(BACKUP PENDING) 상태가 된다. 이를 해제하기 위해서는 전체 백업이 필요하다.
백업시간이 오래걸린다면 다음과 같이 fake backup을 수행할 수도 있다.

db2 backup db <DB명> to /dev/null