DB2 循環ロギングからアーカイブロギングに変更するには&SQL2413NエラーTips


っていうTipsはたぶんいっぱいあるとおもうんだけど・・
backupを流したらSQL2413Nがでたら・・っていう解説はあまり無い。。
具体的には


アーカイブログの保存先を指定

$ db2 UPDATE DB CFG FOR testdb USING logarchmeth1 "DISK:/db2data/ARCHIVELOG"
DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.


アーカイブロギングモードに変更

$ db2 UPDATE DB CFG FOR testdb USING LOGRETAIN RECOVERY
DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.

DB2の再起動

$ db2stop
SQL1064N  DB2STOP processing was successful.

$ db2start
SQL1064N  DB2STOP processing was successful.


起動したらバックアップする

$  db2 backup database testdb online to /db2data compress
SQL2413N  Online backup is not allowed because the database is not recoverable 
or a backup pending condition is in effect.

ここでwhy?
なぜにSQL2413Nがでるの?


それは循環ロギングからアーカイブロギングに変更したときは
一度offlineバックアップが必要なためです。
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql02413n.html


ので、
オンラインバックアップは出来ないので、[offline]設定をはずしてbackupを流します。

$  db2 backup database testdb to /db2data compress

とofflineバックアップを行えば、次回からはonlineバックアップが出来るようになります。



ちなみにバックアップの進行具合はlist utilitiesで確認できますから
別ターミナル等で

$ db2 list utilities show detail

ID                               = 1
Type                             = BACKUP
Database Name                    = TESTDB
Partition Number                 = 0
Description                      = offline db 
Start Time                       = 2009-06-03 11:22:12.163307
State                            = Executing
Invocation Type                  = User
Throttling:
   Priority                      = Unthrottled
Progress Monitoring:
   Estimated Percentage Complete = 11
      Total Work                 = 4698001996 bytes
      Completed Work             = 539760796 bytes
      Start Time                 = 2009-06-03 11:22:12.163329

という感じで現状が知れて便利です。


バックアップも終わったらついでなので
ログサイズも変更しておきましょう。
きちんとした設計が必要ではありますが
大量のupdateをかけるとログフルになるので
目いっぱいの設定をw

db2 UPDATE DB CFG FOR bigdata USING LOGFILSIZ 4096
db2 UPDATE DB CFG FOR bigdata USING LOGSECOND 4
db2 UPDATE DB CFG FOR bigdata USING LOGPRIMARY 252