设为首页 收藏本站
查看: 911|回复: 0

[经验分享] 如何对 DB2 分区数据库的增量备份进行恢复?

[复制链接]

尚未签到

发表于 2016-11-17 00:47:33 | 显示全部楼层 |阅读模式
说明:

对于 DB2 分区数据库来说,其非增量备份映象的恢复操作是可以通过仅发出两条恢复命令来完成的,即先恢复编目分区的备份,再恢复其它分区的备份。但如果要恢复分区数据库的增量备份映象,由于要对恢复的增量备份映象的时间戳记使用 db2ckrst 这一检测增量备份映象恢复顺序的实用程序进行检测,以获取恢复操作的命令序列,而各分区的增量备份映象的时间戳记又不可能完全相同,因此对于编目分区外的其它分区,不可能再通过一条命令来恢复这些分区的增量备份映象了,而必须针对每个分区,分别使用 db2ckrst 获取恢复命令的操作序列,并根据所取得的命令分分区进行恢复操作。

这里就以一个具有 4 个节点的分区数据库 SAMPLE 为例,说明对于 DB2 分区数据库增量备份进行恢复操作的具体步骤。

一. DB2 分区数据库的增量备份操作:

1. 检查并修改数据库参数设置:

数据库可进行增量备份的一个必要条件是要启用 TRACKMOD 这一数据库参数。仅当 TRACKMOD 被设为 ON 时才可执行对数据库进行增量备份的操作。为检测该参数当前的状态,可使用:

db2_all "db2 get db cfg for sample" |grep "TRACKMOD" --(Unix 平台)
db2_all "db2 get db cfg for sample" |find /i "TRACKMOD" --(Windows 平台)

该命令将返回所有分区上 TRACKMOD 的设置。如果输出显示不是所有分区上的设置都为 ON 这一打开状态,可用下述命令修改此设置为打开状态(假设要修改的分区号为 3):

db2_all "<<+3< db2 update db cfg for sample using trackmod on"

如果整个数据库的 TRACKMODE 参数均未打开,可使用如下命令对所有分区进行修改:

db2_all "db2 update db cfg for sample using trackmod on"


2. 对分区数据库的脱机全备份操作:

当修改了参数的设置后,首先需要对分区数据库进行一次完整的脱机全备份操作,后续的增量备份映象都是建立在这一备份映象的基础之上的。备份的命令为(这里未使用分区并行操作的备份方式):

db2_all "db2 backup db sample"

备份操作将在各个分区上被执行,备份结束后,在放置备份映象的路径下(此处为当前路径)使用命令 ls,可查看到上述命令产生的,分别对应于四个分区的备份映象文件,如:

SAMPLE.0.db2v8eee.NODE0000.CATN0000.20040429142824.001
SAMPLE.0.db2v8eee.NODE0001.CATN0000.20040429142843.001
SAMPLE.0.db2v8eee.NODE0002.CATN0000.20040429142857.001
SAMPLE.0.db2v8eee.NODE0003.CATN0000.20040429142912.001

从上述文件名中包含的时间戳记可以看到,各分区上完成备份操作的时间是不同的。

3. 对分区数据库的增量备份操作:

在完成了分区数据库的一次全备份操作的前提下,用户可根据数据库的使用情况,考虑对分区数据库进行多次增量备份操作(这里仅以一次非并行方式的增量备份为例进行说明),其命令为:

db2_all "db2 backup db sample incremental"

命令执行完成后可得到类似如下的,相应于各个分区的四个增量备份映象文件:

SAMPLE.0.db2v8eee.NODE0000.CATN0000.20040429143406.001
SAMPLE.0.db2v8eee.NODE0001.CATN0000.20040429143419.001
SAMPLE.0.db2v8eee.NODE0002.CATN0000.20040429143433.001
SAMPLE.0.db2v8eee.NODE0003.CATN0000.20040429143447.001

到此步骤为止,就完成了对 DB2 分区数据库的增量备份操作,下面将介绍如何在必要时恢复这些增量备份映象。


二. DB2 分区数据库增量备份的恢复操作:

用户创建的增量备份映象,会因备份操作的时间点的不同,而产生多套备份映象。为了恢复某个时间点的分区数据库增量备份映象,用户必须保证在一次恢复操作中使用的各分区的增量备份映象均为同一次备份操作所产生的。

由于分区数据库的所有编目表都放置在编目分区中,DB2 在备份或恢复时要求独占该分区,因此在对其它分区进行恢复操作之前,应首先完成该分区的增量备份的恢复操作,然后再依次对其它节点进行恢复。这里假设我们要恢复上述步骤 3. 中产生的一套增量备份映象文件。

1. 在编目分区上进行增量备份的恢复步骤:

1)获取编目分区号:

用户可利用如下命令确定分区数据库中哪个分区为编目分区,以便首先完成该分区的恢复操作:

db2 list db directory

Database 7 entry:

Database alias = SAMPLE
Database name = SAMPLE
Local database directory = /home/public/db2v8eee
Comment =
Directory entry type = Indirect
Catalog database partition number = 0

从命令输出的最后一行“ Catalog database partition number(目录数据库分区号)” 中可知编目分区号为 0。

2)获取恢复操作的命令序列:

与单分区增量备份的恢复步骤相同,用户首先需要使用 db2ckrst 检测增量备份映象恢复操作的命令序列。从步骤 3 中的增量备份文件的文件名:

SAMPLE.0.db2v8eee.NODE0000.CATN0000.20040429143406.001


中可知,编目分区为 0 的增量备份的时间戳为:20040429143406,则使用 db2ckrst 的命令为:

db2_all "<<+0< db2ckrst -d sample -t 20040429143406"

命令执行后,在屏幕上会有类似的如下输出:

Suggested restore order of images using timestamp 20040429143406 for
database sample.
====================================================================
restore db sample incremental taken at 20040429143406
restore db sample incremental taken at 20040429142824
restore db sample incremental taken at 20040429143406
====================================================================

3)恢复增量备份映象:

按照上述给出的命令完成 0 号编目分区的增量备份映象的恢复操作:

db2_all "<<+0< db2 restore db sample incremental taken at 20040429143406"
db2_all "<<+0< db2 restore db sample incremental taken at 20040429142824"
db2_all "<<+0< db2 restore db sample incremental taken at 20040429143406"

2. 在除编目分区外的其它分区上进行增量备份的恢复步骤:

在完成了编目分区的恢复操作后,便可以类似编目分区恢复操作的顺序对其它分区依次进行增量备份的恢复操作了,需要注意的是,如上面已经提到的,由于是对增量备份进行恢复,所有无法对其它分区进行并行的恢复操作。这里以分区 3 为例加以说明:

1)获取恢复操作的命令序列:

3 号分区的增量备份映象文件名为:

SAMPLE.0.db2v8eee.NODE0003.CATN0000.20040429143447.001

利用 db2ckrst 取得恢复操作的命令序列的命令为:

db2_all "<<+3< db2ckrst -d sample -t 20040429143447"

其输出为:

Suggested restore order of images using timestamp 20040429143447 for
database sample.
====================================================================
restore db sample incremental taken at 20040429143447
restore db sample incremental taken at 20040429142912
restore db sample incremental taken at 20040429143447
====================================================================

2)恢复增量备份映象:

依次执行上述输出中步骤中所取得的输出序列,便可完成该分区的恢复操作:

db2_all "<<+3< restore db sample incremental taken at 20040429143447"
db2_all "<<+3< restore db sample incremental taken at 20040429142912"
db2_all "<<+3< restore db sample incremental taken at 20040429143447"

对于其它分区增量备份的恢复,只需依次重复上述步骤进行恢复即可,当最终完成了该分区数据库的增量备份的恢复操作后,分区数据库中的数据将重新处于完整的,保证了一致点的正常状态,以供用户连接使用。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301195-1-1.html 上篇帖子: DB2如何进行crash recovery原理浅析(转载) 下篇帖子: 转载于 Bob Lyle 谈 DB2 中的 OLAP 函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表