ITPub博客

首页 > 数据库 > 数据库开发技术 > DB2备份恢复步骤及命令

DB2备份恢复步骤及命令

原创 数据库开发技术 作者:starshine 时间:2009-09-13 17:45:01 0 删除 编辑

在项目中要设计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.




[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/154618/viewspace-1026879/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    1
  • 访问量
    1504