下列示例说明如何使用 db2adutl 命令以及 logarchopt1 和 vendoropt 数据库配置参数来执行跨节点恢复。
在下列示例中,计算机 1 名为 bar,它正在运行 AIX®。此机器的所有者是 roecken。bar 上的数据库名为 zample。计算机 2 名为 dps。此机器也在运行 AIX 并由 regress9 所拥有。
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
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:/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 - 同时使用这两种访问类型尚未设置第 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 数据库。
dps:/home/regress9> db2 restore db zample use tsm options "'-fromnode=bar -fromowner=roecken'" without prompting
将返回以下信息:
DB20000I RESTORE DATABASE 命令成功完成。
对 zample 数据库的前滚操作将失败, 原因是 rollforward 实用程序找不到日志文件。前滚操作如下所示:
dps:/home/regress9> db2 rollforward db zample to end of logs and stop
将返回以下错误:
SQL4970N 数据库“ZAMPLE”上的前滚恢复不能达到指定的停止点(日志结束或时间点),原因是在节点“0”上丢失了日志文件。
dps:/home/regress9> db2 update db cfg for zample using logarchopt1 "'-fromnode=bar -fromowner=roecken'"
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 返回了状态的节点数 = 1 节点号 = 0 前滚状态 = 未暂挂 要读取的下一个日志文件 = 已处理的日志文件 = S0000000.LOG - S0000000.LOG 上次落实的事务 = 2004-02-16-20.10.38.000000 UTC DB20000I ROLLFORWARD 命令成功完成。
在“提示”环境中,需要额外的信息,尤其是创建了对象的机器的 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.38dps:/home/regress9> db2 create db zample
dps:/home/regress9> db2 update db cfg for zample using tsm_nodename bar
dps:/home/regress9> db2 update db cfg for zample using tsm_password ********
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”,前滚恢复已停止。
dps:/home/regress9> db2 update db cfg for zample using tsm_nodename bar
dps:/home/regress9> db2 update db cfg for zample using tsm_password *******
dps:/home/regress9> db2 update db cfg for zample using logarchopt1 "'-fromnode=bar -fromowner=roecken'"
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 命令成功完成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11134849/viewspace-689441/ ,如需转载,请注明出处,否则将追究法律责任。