[test@demo db2cfg]$ db2 list history archive log all for testdb
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID
-- --- ------------------ ---- --- ------------ ------------ --------------
X D 20190108163458 1 D S0000033.LOG C0000002
----------------------------------------------------------------------------
Comment:
Start Time: 20190108163458
End Time: 20190108163458
Status: A
----------------------------------------------------------------------------
EID: 77 Location: /db2cfg/test/TESTDB/NODE0000/C0000002/S0000033.LOG
[test@demo db2cfg]$ ll -h /db2cfg/test/TESTDB/NODE0000/C0000001
total 180K
-rw-r----- 1 test test 24K Jan 8 16:06 S0000020.LOG
-rw-r----- 1 test test 12K Jan 8 16:06 S0000021.LOG
-rw-r----- 1 test test 12K Jan 8 16:06 S0000022.LOG
-rw-r----- 1 test test 24K Jan 8 16:14 S0000023.LOG
-rw-r----- 1 test test 12K Jan 8 16:14 S0000024.LOG
-rw-r----- 1 test test 12K Jan 8 16:17 S0000025.LOG
-rw-r----- 1 test test 12K Jan 8 16:18 S0000026.LOG
-rw-r----- 1 test test 12K Jan 8 16:20 S0000027.LOG
-rw-r----- 1 test test 12K Jan 8 16:25 S0000028.LOG
-rw-r----- 1 test test 12K Jan 8 16:25 S0000029.LOG
-rw-r----- 1 test test 12K Jan 8 16:28 S0000030.LOG
-rw-r----- 1 test test 12K Jan 8 16:28 S0000031.LOG
-rw-r----- 1 test test 12K Jan 8 16:31 S0000032.LOG
查看上面的歸檔日誌大小都很小,而且比較頻繁,是爲什麼呢?
正常情況下,只要一個日誌文件寫滿了(不管活動還是非活動,含有未提交事務或事務雖提交
但是數據還未刷入磁盤的日誌是活動日誌)就會被歸檔,
但是在歸檔日誌模式下,某些場景,如在數據庫deactivate/發出archive log命令/
online backup結束後等也會觸發日誌管理器對日誌進行歸檔(不管日誌是否寫滿都截斷當前
日誌進行歸檔,然後開始使用新的日誌文件)。
以上我的環境是由於測試環境,頻繁的做online backup測試和在沒有顯式激活數據庫情況
下頻繁connect和disconnect數據庫,所以導致於頻繁的歸檔且大小非常小。
數據庫的激活有兩種方式:
顯式激活 :手動發出激活數據庫命令db2 activate db <dbname>,
隱式激活: 第一個連接連到數據庫時,db2 connect to <dbname>就會隱式地激活數據庫,
如果在沒使用 activate db命令激活數據庫下,第一次的連接時候,db2會分配所有資源如緩
衝池等,當所有對數據庫連接斷開後,數據庫就會自動deactivate,然後對日誌進行歸檔,比如
頻繁執行 db2 connect to <dbname>
db2 terminate/db2 connect reset
數據庫頻繁自動的deactivate,就會導致於頻繁歸檔;
如果採用db2 activate db <dbname>顯式激活數據庫,所有連接斷開後,DB2並不會自動
deactivate數據庫,也就不會觸發日誌歸檔。