1.数据参数
Log file size (4KB) (LOGFILSIZ) = 16384
Number of primary log files (LOGPRIMARY) = 10
Number of secondary log files (LOGSECOND) = 20
[db2inst1@TKNTS-QDB ~]$ db2 get db cfg for tkntsq |grep -i compress
Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFF
Archive compression for logarchmeth2 (LOGARCHCOMPR2) = OFF
2.设置归档日志压缩,注意需要重启实例才会生效
设置后插入数据生成归档日志发现归档日志已经被压缩
[db2inst1@TKNTS-QDB C0000000]$ ls -al
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:15 S0006458.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:16 S0006459.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:16 S0006460.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:16 S0006461.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:16 S0006462.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:17 S0006463.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:17 S0006464.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:17 S0006465.LOG
-rw-r----- 1 db2inst1 db2iadm1 67117056 Jul 1 11:17 S0006466.LOG
-rw-r----- 1 db2inst1 db2iadm1 24502272 Jul 1 11:19 S0006467.LOG
-rw-r----- 1 db2inst1 db2iadm1 329444 Jul 1 11:20 S0006468.LOG
-rw-r----- 1 db2inst1 db2iadm1 8488449 Jul 1 11:20 S0006469.LOG
-rw-r----- 1 db2inst1 db2iadm1 8494842 Jul 1 11:21 S0006470.LOG
-rw-r----- 1 db2inst1 db2iadm1 8495253 Jul 1 11:21 S0006471.LOG
-rw-r----- 1 db2inst1 db2iadm1 8493556 Jul 1 11:21 S0006472.LOG
-rw-r----- 1 db2inst1 db2iadm1 8675082 Jul 1 11:28 S0006473.LOG
-rw-r----- 1 db2inst1 db2iadm1 4800165 Jul 1 11:36 S0006474.LOG
-rw-r----- 1 db2inst1 db2iadm1 14092 Jul 1 11:37 S0006475.LOG
3.
在线备份数据库,备份完成后插入大量标记数据,然后恢复数据库,最后前滚到生成的压缩归档日志文件
db2 bakcup db TKNTSQ online to /db2dta/backup include logs
db2 "begin atomic declare i int default 0;while(i <1000000) do insert into test1 values (i,'liys','35egdgey54whdfsgdsfhusdd39eufsdfsgd890gsgggsgdfsgdgdsfgs','35egd4636rhshdsfhusdd39eufsdfsgd89gs');set i=i+1;end while;end"
db2 restore db TKNTSQ from /db2dta/backup taken at 20220701110215 logtarget /db2dta/logs
[db2inst1@TKNTS-QDB logs]$ db2 "rollforward db tkntsq to end of logs and stop overflow log path('/arclog/db2inst1/TKNTSQ/')"
Rollforward Status
Input database alias = tkntsq
Number of members have returned status = 1
Member ID = 0
Rollforward status = not pending
Next log file to be read =
Log files processed = S0006448.LOG - S0006474.LOG
Last committed transaction = 2022-07-01-03.37.17.000000 UTC
DB20000I The ROLLFORWARD command completed successfully.
4.通过查询发现压缩的日志文件也能前滚使用
[db2inst1@TKNTS-QDB logs]$ db2 "select count(*) from test1 where name1='liys'"
SQL1024N A database connection does not exist. SQLSTATE=08003
[db2inst1@TKNTS-QDB logs]$ db2 connect to tkntsq
Database Connection Information
Database server = DB2/LINUXX8664 10.5.11
SQL authorization ID = DB2INST1
Local database alias = TKNTSQ
[db2inst1@TKNTS-QDB logs]$ db2 "select count(*) from test1 where name1='liys'"
1
-----------
200000
1 record(s) selected.