DB2在线增量备份和恢复

为什么要进行在线增量备份?

在线意味者备份的时候,允许其他的连接,而不用停掉数据库

增量意味着,不需要每次备份一个超大的数据库.

同时意味着你可以将数据库恢复到崩溃前的状态,而不是你最后一次备份时的状态,最大可能的减少数据损失.

设置数据库以支持在线增量备份

db2在线增量备份需要采用归档记录类型,而不是循环记录类型,而db2创建的数据库缺省采用循环记录类型,要设置归档记录类型有两种方法:

  • 更改logretain为recovery或者on,
  • 改改userexit为on

   这样db2的日志将不会循环使用,而是不断增多,这样才有可能进行增量备份,并将数据库恢复到崩溃的时间点

db2增量备份需要设置tracemod为on,这样数据库将在物理页上记录更改的部分页,做dirty标记

下面是一个脚本可以设置这些:

connect to testdb;
update db cfg using logretain on;
update db cfg using trackmod on;
db2stop force;
db2start;

通常应该再设置mirrorlogpath以备份db2日志,

update db cfg using mirrologpath 你认为安全的路径

如何进行在线备份?

backup db testdb online to 备份路径(全备份)

backup db testdb online incremental to 备份路径(增量备份)

backup db testdb online incremental delta to 备份路径(delta备份)

如何使用备份文件进行恢复?

1.查看备份文件的时间点,并验证是否可用

db2ckbkp -h d:/db2bak/TEST.0/DB2/NODE0000/CATN0000/20050523/225141.001

2.让db2告诉你进行恢复的命令序列

db2ckrst -d test2 -r database -t 20050529210521

3.执行上个命令给出的命令序列

将会将数据库还原到备份的时刻,之后应该执行日志前滚(此时数据库处于前滚暂挂状态,将无法使用)

rollforward db testdb to end of logs and complete

当然如果你认为不需要前滚(这样将丢失最后一次备份之后的更改),也可以

rollforward db testdb stop

 

 


 

发表于 2005年06月18日 10:15 AM

你可能感兴趣的:(老blog中的文章)