前滚恢复模式的DB2分区数据库的启用

本文将为您介绍前滚恢复模式的DB2 分区数据库的启用方法,并将正确地利用BACKUP/RESTORE/ROLLFORWARD等命令进行备份、恢复等操作,供您参考,希望对您有所帮助。

对于 DB2 的分区数据库,某些直接发出的 DB2 命令只作用于当前一个分区,备份和恢复(BACKUP/RESTORE)就属于这一类命令。但是对于分区数据库,由于同一数据库的数据分布在多个分区上,则对它的备份和恢复操作就要考虑到各分区上数据的完整及同步问题,因此可以在 DB2 命令前加上 db2_all 命令,以便 DB2 命令在数据库的各个分区上被执行,而无需分别对每个分区重复发出相同的命令。

另外在 DB2 中,启用了前滚恢复模式的数据库,使用的是归档日志方式,而非缺省的循环日志方式。这样,在进行恢复操作时,可在利用 RESTORE 命令恢复了数据库或表空间的备份后,再通过前滚命令(ROLLFORWARD)命令前滚归档日志中的事务,恢复数据库备份时间点之后提交的事务,最大程度的保护数据库的数据。与备份和恢复命令不同的是,前滚命令仅能通过在分区数据库的编目分区上运行,来实现数据库各分区的前滚操作。

下面就以一个启用了前滚恢复模式的分区数据库 SAMPLE 为例介绍其备份、恢复以及前滚操作的具体步骤。这里假设该数据库创建在一台服务器上,具有四个分区,其编目分区为0号分区。

一. 对分区数据库的备份操作:

前面已经介绍了,备份操作仅作用于分区数据库的当前分区,所以要使用“db2_all”的命令实现对所有分区进行备份(这里使用联机备份方式),即:

db2_all “db2 backup db sample online”

但是上述命令对各分区的备份是以串行方式进行的,为提高备份操作的性能,还有一种可使分区间以并行方式进行的方法。即在上述命令的 DB2 命令前加上以下选项来实现命令的并行:

<<+分区号< :表示后续命令作用于该分区。
<<-分区号< :表示后续命令作用于除该分区之外的其它分区。
||<<-分区号< 或 <<-分区号; :表示后续命令作用于除该分区之外的其它分区,并且是以并行方式进行的。#p#

但由于备份和恢复操作要求独占编目分区,因此在对其它分区进行并行方式的备份操作之前,首先必须完成该分区的备份操作。其方法为:

db2_all “<<+0< db2 backup db sample online” — 对编目分区的备份
db2_all “||<<-0< db2 backup db sample online” — 对其它分区的并行备份
或 db2_all “<<-0<; db2 backup db sample online”

注:分区数据库的备份结束后会为每个分区都产生一个备份映象文件。

二. 对分区数据库的恢复操作:

由于备份和恢复操作都只作用于当前数据库分区,因此也可分为串行和并行的方式。为了在前滚恢复中介绍 OVERFLOW 选项的使用,这里我们将 SAMPLE 数据库恢复到同实例的一个名为 SAMPNEW 的新数据库中,其命令应为:

·分区间串行方式:

db2_all “db2 restore db sample into sampnew without prompting”

注:由于是分区数据库,因此在完成了第一个分区的恢复操作,开始第二个分区的恢复操作时系统会出现 SQL2529W 的警告,表明数据库已存在,是否要覆盖的提示,而在某些平台下,如 Linux,这一提示会导致分区数据库恢复操作的失败,如:

$ db2_all “db2 restore db sample into sapmnew”

DB20000I The RESTORE DATABASE command completed successfully.
rhas3: db2 restore db sample into sapmnew completed ok

SQL2529W Warning! Restoring to an existing database that is different from the backup image database, and the alias name “SAPMNEW” of the existing database do es not match the alias name “SAMPLE” of the backup image, and the database name “SAPMNEW” of the existing database does not match the database name “SAMPLE” of the backup image. The target database will be overwritten by the backup version. The Roll-forward recovery logs associated with the target database will be deleted.
Do you want to continue ? (y/n) SQL2001N The utility was interrupted. The output data may be incomplete.
rhas3: db2 restore db sample into sapmnew completed rc=4

因此建议在上述命令中加入了“WITHOUT PROMPTING”的选项,以避免该提示的出现。#p#

·分区间并行方式

db2_all “<<+0< db2 restore db sample into sampnew”
db2_all “||<<-0< db2 restore db sample into sampnew without prompting”
或 db2_all “<<-0<; db2 restore db sample into sampnew without prompting”

因编目分区是第一个进行恢复的分区,所以无需加“WITHOUT PROMPTING”选项。

由于我们使用的备份映象文件是通过联机备份产生的,因此在恢复操作结束后,数据库将处于前滚暂挂状态,必须通过前滚操作前滚归档日志,以取消前滚暂挂状态,使数据库最终可用。

三. 对分区数据库的前滚操作:

由于新数据库 SAMPNEW 的日志路径下不包含源 SAMPLE 数据库日志路径下的归档日志文件,所以在前滚操作之前,需要将 SAMPLE 的归档日志文件复制到一个特定的路径下,然后在发出前滚命令时,使用 OVERFLOW 选项来指定该路径,以替代 SAMPNEW 的日志路径来提供前滚操作要使用的归档日志文件。

为查找源 SAMPLE 数据库归档日志存放的路径,可利用如下命令:

db2_all “db2 get db cfg for sample” | grep “Path”

Path to log files = /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/
Path to log files = /home/db2inst1/db2inst1/NODE0001/SQL00001/SQLOGDIR/
Path to log files = /home/db2inst1/db2inst1/NODE0002/SQL00001/SQLOGDIR/
Path to log files = /home/db2inst1/db2inst1/NODE0003/SQL00001/SQLOGDIR/

这里假设将各分区的归档日志文件对应复制到 /sampnew 下,因前滚命令仅可在编目分区上执行,所以在编目分区上前滚到日志文件尾并结束前滚状态的命令应写为:

db2 “rollforward db sampnew to end of logs and complete overflow log path
(/sampnew/NODE0000/SQL00001/SQLOGDIR,
/sampnew/NODE0001/SQL00001/SQLOGDIR on dbpartitionnum 1,
/sampnew/NODE0002/SQL00001/SQLOGDIR on dbpartitionnum 2,
/sampnew/NODE0003/SQL00001/SQLOGDIR on dbpartitionnum 3,
)”

注:对于0号分区,在 OVERFLOW 选项中不能使用“ON DBPARTITIONNUM 0”的子句,否则会遇到:

SQL0104N An unexpected token “on” was found following ” “. Expected tokens may include: “)”. SQLSTATE=42601

的报错,表明命令语法不正确。

至此,我们完成了对已启用前滚恢复模式的 DB2 分区数据库 SAMPLE,利用 BACKUP 命令进行联机备份,并使用 RESTORE 和 ROLLFORWARD 命令恢复至一个新数据库 SAMPNEW 的举例介绍。
 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/291931.html<

(0)
管理的头像管理
上一篇2025-05-19 22:11
下一篇 2025-05-19 22:13

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注