在使用DB2的时候,如果数据库的日志设置成归档模式的话,如果对数据库的操作比较多的话,产生的日志会很多,且很大,而我们有时候会进行归档日志的清理,会将一些数据库备份包括的日志给删除掉,这个时候,如果需要回滚数据库的话,则无法回滚成功,下面教大家一个方法,在日志被删除的情况下,恢复日志,并且恢复数据库。
1.有一个包括日志的备份。
2.将该备份里面的日志恢复出来。db2 restore db bpms logs from BPMS.0.db2inst1.NODE0000.CATN0000.20120119112309.001 taken at 20120119112309 logtarget /opt/db2backup/
3.查询该备份文件
[db2inst1@oracle db2backup]$ db2ckbkp -h BPMS.0.db2inst1.NODE0000.CATN0000.20120119112309.001
=====================
MEDIA HEADER REACHED:
=====================
Server Database Name -- bpms
Server Database Alias -- bpms
Client Database Alias -- bpms
Timestamp -- 20100424162148
Database Partition Number -- 0
Instance -- db2inst1
Sequence Number -- 1
Release ID -- D00
Database Seed -- 7C172526
DB Comment's Codepage (Volume) -- 0
DB Comment (Volume) --
DB Comment's Codepage (System) -- 0
DB Comment (System) --
Authentication Value -- -1
Backup Mode -- 1
Includes Logs -- 1
Compression -- 1
Backup Type -- 0
Backup Gran. -- 16
Status Flags -- 21
System Cats inc -- 1
Catalog Partition Number -- 0
DB Codeset -- UTF-8
DB Territory --
LogID -- 1272095572
LogPath -- /home/db2inst1/db2inst1/NODE0000/SQL00002/SQLOGDIR/
Backup Buffer Size -- 1572864
Number of Sessions -- 1
Platform. -- 12
The proper image file name would be:
bpms.0.db2inst1.NODE0000.CATN0000.20100424162148.001
[1] Buffers processed: ####
Image Verification Complete - successful.
查看LOGPATH一行,然后把恢复出来的日志文件放到里面去。
4.恢复数据库
db2 restore db bpms incremental automatic from /opt/db2backup/ taken at 20100424162148
5.前滚数据库
db2 rollforward db bpms to end of logs and complete