查看: 5297|回复: 1

[精华] 使用 db2adutl 命令以及 logarchopt1 和 vendoropt 数据库配置参数来进行跨节点恢复

[复制链接]
论坛徽章:
1
2010新春纪念徽章
日期:2010-01-04 08:33:08
跳转到指定楼层
1#
发表于 2007-3-2 06:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用 db2adutl 命令以及 logarchopt1 和 vendoropt 数据库配置参数来进行跨节点恢复

下列示例说明如何使用 db2adutl 命令以及 logarchopt1 和 vendoropt 数据库配置参数来执行跨节点恢复。

在下列示例中,计算机 1 名为 bar,它正在运行 AIX?。此机器的所有者是 roecken。bar 上的数据库名为 zample。计算机 2 名为 dps。此机器也在运行 AIX 并由 regress9 所拥有。
PASSWORDACCESS = generate
计算机 1
设置数据库以便将日志归档至 TSM。更新 zample 数据库的数据库配置参数 logarchmeth1:
   bar:/home/roecken> db2 update db cfg for zample using LOGARCHMETH1 tsm

将返回以下信息:
   成功完成 DB20000I UPDATE DATABASE CONFIGURATION 命令。
注:
在更新数据库配置之前,可能需要对数据库进行脱机备份。
强制应用程序断开连接:
   db2 force applications all
验证是否已强制所有应用程序断开连接:
   db2 list applications
您应该接收到一条消息,说明未返回任何数据。
注:
在分区数据库环境中,必须对所有数据库分区都执行此步骤。
备份数据库:
      db2 backup db zample use tsm

将返回类似以下的信息:
   备份成功。此备份映像的时间戳记是:20040216151025

注:
在分区数据库环境中,必须对所有数据库分区都执行此步骤。根据您正在执行联机备份还是脱机备份,在数据库分区上执行此步骤的顺序有所不同。有关更多信息,请参阅使用备份。
连接至 zample 数据库,然后在该数据库中创建一个表。
将数据装入新表中。在此示例中,表名为 a,从定界 ASCII 码文件中装入的数据为 mr。指定了 COPY YES 选项来生成装入的数据的副本,并且 USE TSM 选项指定数据的副本存储在 Tivoli? Storage Manager 上。
注:
仅当数据库启用了前滚恢复功能时才能指定 COPY YES 选项;即,必须将 logarchmeth1 数据库配置参数设置为 USEREXIT 或 LOGRETAIN。
   bar:/home/roecken> db2 load from mr of del modified by noheader replace
   into a copy yes use tsm

实用程序返回了一系列消息来指示它的进度:
   SQL3109N  实用程序正开始从“/home/roecken/mr”文件中装入数据。
   SQL3500W  实用程序在“02/16/2004 15:12:13.392633”时进入“装入”阶段。
   SQL3519W  开始装入一致点。输入记录数 =“0”。  
   SQL3520W  装入一致点成功。
   SQL3110N  实用程序已完成处理。从输入文件读取了“1”行。
   SQL3519W  开始装入一致点。输入记录数 =“1”。
   SQL3520W  装入一致点成功。
   SQL3515W  实用程序在“02/16/2004 15:12:13.445718”时已完成“装入”阶段。
   读取的行数        = 1
   跳过的行数        = 0
   装入的行数        = 1
   拒绝的行数        = 0
   删除的行数        = 0
   落实的行数        = 1

现在,在 TSM 上应该具有一个备份映像、一个装入副本映像和一个日志文件。可以按如下所示对 zample 数据库运行查询:
   bar:/home/roecken/sqllib/adsm> db2adutl query db zample

将返回以下信息:
      正在检索 FULL DATABASE BACKUP 信息。
     1 时间:20040216151025  最早的日志:S0000000.LOG  数据库分区号:0  会话数:1
   正在检索 INCREMENTAL DATABASE BACKUP 信息。
     找不到 ZAMPLE 的 INCREMENTAL DATABASE BACKUP 映像


   正在检索 DELTA DATABASE BACKUP 信息。
     找不到 ZAMPLE 的 DELTA DATABASE BACKUP 映像


   正在检索 TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 TABLESPACE BACKUP 映像


   正在检索 INCREMENTAL TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 INCREMENTAL TABLESPACE BACKUP 映像


   正在检索 DELTA TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 DELTA TABLESPACE BACKUP 映像


  正在检索 LOAD COPY 信息。
       1 时间: 20040216151213


   正在检索 LOG ARCHIVE 信息。
      日志文件:S0000000.LOG,链号:0,数据库分区号:0 生成时间:2004-02-16-15.10.38
要启用跨节点恢复,必须为另一个节点和帐户提供对 bar 计算机上的对象的访问权。在此示例中,对 dps 节点和 regress9 用户提供了访问权。
   bar:/home/roecken/sqllib/adsm> db2adutl grant user regress9
      on nodename dps for db zample

将返回以下信息:
   成功添加了 regress9 访问 dps 节点上的 ZAMPLE 的许可权。

要查询 db2adutl grant 操作的结果,发出以下命令:
   bar:/home/roecken/sqllib/adsm> db2adutl queryaccess

将返回以下信息:
   节点                 用户名             数据库名称   类型
   --------------------------------------------------------------
   DPS                  regress9             ZAMPLE          A
   --------------------------------------------------------------
   访问类型:  B - 备份映像   L - 日志   A - 同时使用这两种访问类型
PASSWORDACCESS = 生成环境
计算机 2

尚未设置第 2 台计算机 dps。在 dps 上对 zample 数据库的 db2adutl 查询返回了下列结果:
   dps:/home/regress9/sqllib/adsm> db2adutl query db zample
   --- 数据库目录是空的 ---
   警告:在 ADSM 服务器上 DB2 没有创建文件空间
   警告:在 ADSM 中找不到任何别名的 DB2 备份映像。

   dps:/home/regress9/sqllib/adsm> db2adutl query db zample nodename
       bar owner roecken
   --- 数据库目录是空的 ---

对 ZAMPLE 数据库的查询


   正在检索 FULL DATABASE BACKUP 信息。
     1 时间:20040216151025  最早的日志:S0000000.LOG  数据库分区号:0  会话数:1
   正在检索 INCREMENTAL DATABASE BACKUP 信息。
     找不到 ZAMPLE 的 INCREMENTAL DATABASE BACKUP 映像


   正在检索 DELTA DATABASE BACKUP 信息。
     找不到 ZAMPLE 的 DELTA DATABASE BACKUP 映像


   正在检索 TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 TABLESPACE BACKUP 映像


   正在检索 INCREMENTAL TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 INCREMENTAL TABLESPACE BACKUP 映像


   正在检索 DELTA TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 DELTA TABLESPACE BACKUP 映像


  正在检索 LOAD COPY 信息。
       1 时间: 20040216151213


   正在检索 LOG ARCHIVE 信息。
      日志文件:S0000000.LOG,链号:0,数据库分区号:0 生成时间:2004-02-16-15.10.38

在 dps 计算机上尚不存在 zample 数据库。
将 zample 数据库复原至 dps 计算机:
dps:/home/regress9> db2 restore db zample use tsm options
   "'-fromnode=bar -fromowner=roecken'" without prompting

将返回以下信息:
   DB20000I  已成功完成 RESTORE DATABASE 命令。
注:
如果 dps 上已经存在 zample 数据库,则将省略 OPTIONS 参数,并且将使用数据库配置参数 vendoropt。此配置参数会覆盖备份或复原操作的 OPTIONS 参数。

对 zample 数据库的前滚操作将失败,原因是 rollforward 实用程序找不到日志文件。前滚操作如下所示:
   dps:/home/regress9> db2 rollforward db zample to end of logs and stop

将返回以下错误:
   SQL4970N  数据库“ZAMPLE”上的前滚恢复不能达到指定的停止点(日志结束或时间点),
原因是在节点“0”上丢失了日志文件。
要强制 rollforward 实用程序查找另一台机器上的日志文件,必须配置正确的 logarchopt 值,在此情况下,为 logarchopt1 数据库配置参数:
      dps:/home/regress9> db2 update db cfg for zample using logarchopt1
   "'-fromnode=bar -fromowner=roecken'"
要使 rollforward 实用程序能够使用装入副本映像,还必须设置 vendoropt 数据库配置参数:
      dps:/home/regress9> db2 update db cfg for zample using VENDOROPT
   "'-fromnode=bar -fromowner=roecken'"
现在,可以对 zample 数据库进行前滚了:
   dps:/home/regress9> db2 rollforward db zample to end of logs and stop

将返回以下信息:
                                    前滚状态

   输入数据库别名                   = zample
   返回了状态的节点数               = 1

   节点号                           = 0
   前滚状态                         = 未暂挂
   要读取的下一个日志文件           =
   已处理的日志文件                 = S0000000.LOG - S0000000.LOG
   上次落实的事务                   = 2004-02-16-20.10.38.000000 UTC

  DB20000I  已成功完成 ROLLFORWARD 命令。  
PASSWORDACCESS = 提示环境

在“提示”环境中,需要额外的信息,尤其是创建了对象的机器的 TSM 节点名和密码。

对于 db2adutl,更新 dsm.sys 文件(在基于 Windows 的平台上称为 dsm.opt 文件)并将 NODENAME bar(因为 bar 是源计算机的名称)添加至服务器子句:
   dps:/home/regress9/sqllib/adsm> db2adutl query db zample nodename bar
   owner roecken password *******

将返回以下信息:
   对 ZAMPLE 数据库的查询


   正在检索 FULL DATABASE BACKUP 信息。
     1 时间:20040216151025  最早的日志:S0000000.LOG  数据库分区号:0  会话数:1
   正在检索 INCREMENTAL DATABASE BACKUP 信息。
     找不到 ZAMPLE 的 INCREMENTAL DATABASE BACKUP 映像


   正在检索 DELTA DATABASE BACKUP 信息。
     找不到 ZAMPLE 的 DELTA DATABASE BACKUP 映像


   正在检索 TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 TABLESPACE BACKUP 映像


   正在检索 INCREMENTAL TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 INCREMENTAL TABLESPACE BACKUP 映像


   正在检索 DELTA TABLESPACE BACKUP 信息。
     找不到 ZAMPLE 的 DELTA TABLESPACE BACKUP 映像


  正在检索 LOAD COPY 信息。
       1 时间: 20040216151213


   正在检索 LOG ARCHIVE 信息。
      日志文件:S0000000.LOG,链号:0,数据库分区号:0 生成时间:2004-02-16-15.10.38
如果该数据库不存在,则创建空的 zample 数据库。如果 zample 数据库已存在,则可以跳过此步骤和用来更新数据库配置的下面两个步骤。
   dps:/home/regress9> db2 create db zample
更新 zample 数据库的数据库配置参数 tsm_nodename:
   dps:/home/regress9> db2 update db cfg for zample using tsm_nodename bar
更新 zample 数据库的数据库配置参数 tsm_password:
   dps:/home/regress9> db2 update db cfg for zample using tsm_password ********
复原 zample 数据库:
   dps:/home/regress9> db2 restore db zample use tsm options
   "'-fromnode=bar -fromowner=roecken'" without prompting

成功完成复原操作,但是发出了一条警告:
   SQL2540W  复原成功,但是在以“无中断”方式进行处理时,在“数据库复原”期间
遇到了警告“2523”。

此时,rollforward 实用程序又找不到正确的日志文件:
   dps:/home/regress9> db2 rollforward db zample to end of logs and stop

将返回以下错误消息:
   SQL1268N  由于检索节点“0”上的数据库“ZAMPLE”的日志文件“S0000000.LOG”时
发生错误“-2112880618”,前滚恢复已停止。
因为数据库复原操作替换了数据库配置文件,所以必须将 TSM 数据库配置值设置为正确的值。首先,必须复位 tsm_nodename 配置参数:
   dps:/home/regress9> db2 update db cfg for zample using tsm_nodename bar
必须复位 tsm_password 数据库配置参数:
   dps:/home/regress9> db2 update db cfg for zample using tsm_password *******
必须复位 logarchopt1 数据库配置参数,以便 rollforward 实用程序可以找到正确的日志文件:
   dps:/home/regress9> db2 update db cfg for zample using logarchopt1
   "'-fromnode=bar -fromowner=roecken'"
还必须复位 vendoropt 数据库配置参数,以便还可以使用装入恢复文件:
   dps:/home/regress9> db2 update db cfg for zample using VENDOROPT
   "'-fromnode=bar -fromowner=roecken'"
当设置数据库配置参数时,可以对数据库进行前滚:
   dps:/home/regress9> db2 rollforward db zample to end of logs and stop

对 zample 数据库运行 ROLLFORWARD QUERY STATUS 命令将显示以下结果:
                                    前滚状态

   输入数据库别名                   = zample
   返回了状态的节点数               = 1

   节点号                           = 0
   前滚状态                         = 未暂挂
   要读取的下一个日志文件           =
   已处理的日志文件                 = S0000000.LOG - S0000000.LOG
   上次落实的事务                   = 2004-02-16-20.10.38.000000 UTC

  DB20000I  已成功完成 ROLLFORWARD 命令。
论坛徽章:
233
天枰座
日期:2016-02-02 09:36:332012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41灰彻蛋
日期:2011-06-22 19:28:30现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-04-08 16:56:552011新春纪念徽章
日期:2011-02-18 11:43:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:15
2#
发表于 2007-3-2 10:05 | 只看该作者
原创?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表