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