首页 > 数据库 > 数据库开发技术 > DB2备份恢复步骤及命令
在项目中要设计DB2的备份和恢复方案,在网上查了一下,讨论这个主题的很多,但都不太系统,并且互相引用,造成文章内比较杂乱,在这里总结一下步骤和命令,希望有所帮助。
备注:本文以DB2自带的SAMPLE数据库作为例子,在CLP执行db2sampl可以建立此数据库,DB2 版本为v9
一、参数设置
如果希望进行增量备份和恢复,需要设置几个数据库参数,分别是:
1)trackmod :启用跟踪已修改页,可选值包括[ON|OFF] 启动此参数后,使数据库能够支持增量备份
命令:UPDATE DB CFG FOR SAMPLE using trackmod on --打开跟踪
UPDATE DB CFG FOR SAMPLE using trackmod off --关闭跟踪
2)logarchmeth1:主日志归档方法,指定已归档日志的目标介质类型,此参数在DB2 v9中整合了logretain和userexit,在设置时,可选值包括
OFF、USEREXIT、LOGRETAIN、DISK、TSM等
命令:UPDATE DB CFG FOR SAMPLE USING logarchmeth1 "DISK:D:BackDB2LOG" --采用磁盘文件保存归档日志
提示:为了检验日志归档效果,可以设置logfilsiz 参数,将其设得小一些(设成100,文件大小约为400K),执行一个较大的事务(如插入10000行数据),可以看到日志归档到设置的目录下参数设置完成后,需要重启数据库使设置生效。
由于设置完上述参数后,数据库处于backup pending状态,因此需要进行一次完全备份,使数据库回到可正常访问状态
3)backup db sample to d:
二、执行备份
1)在数据库中新增一个表
CREATE TABLE t_test(id INT,name CHAR(10))
2)插入数据
INSERT INTO t_test(0,'tom')
可以做一个存储过程,重复上面的SQL,插入10000行数据
3)查看归档日志
可以在 logarchmeth1设置的位置看到归档的日志,日志名称为递增的数字,不再循环使用
4)增量备份
backup db sample online INCREMENTAL to d:
提示:增量备份包括两类,INCREMENTAL和DELTA
INCREMENTAL备份自上一次完整数据库备份以来发生变化的所有数据,DELTA 只备份自上一次成功执行的完整备份、增量备份或 delta 备份以来发生变化的数据 三、数据恢复
1)通过db2ckrst 命令查看恢复命令
db2ckrst -d sample -t 20090221113713 -r database
其中-t 后面的时间戳取最后一次备份的时间,可从备份文件的名称中获得,执行此命令,DB2给出恢复命令和执行顺序
Suggested restore order of images using timestamp 20090821113713 for atabase sample.
====================================================================
restore db sample incremental taken at 20090821113713
restore db sample incremental taken at 20090821113014
restore db sample incremental taken at 20090821113713
====================================================================
从给出的命令可以看到,要先执行最后一次增量备份恢复,然后再执行其他备份恢复,并且执行完其他备份恢复后,还要再执行一次
备注:恢复前最好使用db2ckrst获得相关命令,可以少走弯路。
2)删除数据库,模拟灾难发生
3)执行上述db2ckrst给出的命令
执行完恢复操作后,数据库处于rollforward-pending状态,需要执行前滚恢复命令将数据库恢复到日志记录的最近时间点
4)执行数据库前滚命令,重作归档日志中的事务
rollforward database sample to end of logs and complete
执行成功后,DB2显示如下信息(日志文件名和提交事务时间根据实际情况确定):
前滚状态
输入数据库别名 = sample
节点数已返回状态 = 1
节点号 = 0
前滚状态 = 未暂挂
下一个要读取的日志文件 =
已处理的日志文件 = S0000008.LOG - S0000008.LOG
上次落实的事务 = 2009-08-21-01.08.39.000000 UTC
提示:也可前滚到某一时间点
四、相关命令
1)查看备份历史纪录
list history backup all for 数据库名称
2)检查备份文件
db2ckbkp SAMPLE.0.DB2.NODE0000.CATN0000.20090820145507.001
如果文件正常,返回:
[1] Buffers processed: ############
Image Verification Complete - successful.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/154618/viewspace-1026879/ ,如需转载,请注明出处,否则将追究法律责任。