产品:DB2 UDB
平台:跨平台
版本:V8.2,V8.3
本文提供了获取 DB2 数据库表空间前滚恢复操作的所要求最小恢复时间戳记的三种方法。
对于启用了前滚恢复方式(使用归档日志模式)的 DB2 数据库,如果备份操作是在联机方式下完成的,当需要进行表空间集的恢复操作时,在执行了 RESTORE 命令之后,还必须执行 ROLLFORWARD 命令以前滚表空间完成其恢复操作。为保证表空间前滚操作的成功,前滚的时间点必须大于或等于表空间前滚操作所需的最小恢复时间戳记,这里提供了三种获取该时间戳记的方法:
1. 当前滚命令所给的时间戳小于最小恢复时间戳记时,前滚命令将无法进行,并提示前滚最小恢复时间戳,如:
db2 "rollforward db sample to 2005-05-28-12 using local time tablespace (userspace1)"
SQL1275N 前滚的停止时间必须大于或等于 "2006-05-28-00.23.21.000000",因为节点 "0" 上的数据库 "SAMPLE" 中包含比指定时间更新的信息。
该命令的返回信息表明 USERSPACE1 表空间完成前滚操作的最小恢复时间戳必须大于或等于 2006-05-28-00.23.21.000000。由于前滚命令中使用了 USING LOCAL TIME,该时间戳记即为本地时间。
2. 通过查询 SNAPSHOT_TBS_CFG 表函数中 MIN_RECOVERY_TIME 字段的值,返回表空间前滚最小恢复时间戳(为本地时间):
db2 "select substr(tablespace_name,1,15) as tablespace_name, min_recovery_time from table (snapshot_tbs_cfg('SAMPLE',-1) ) as a"
TABLESPACE_NAME MIN_RECOVERY_TIME
--------------- --------------------------
SYSCATSPACE -
TEMPSPACE1 -
USERSPACE1 2006-05-28-00.23.21.000000
SYSTOOLSPACE 2006-05-12-13.02.11.000000
4 条记录已选择。
其中 USERSPACE1 表空间的前滚最小恢复时间戳为“2006-05-28-00.23.21.000000”。
3. 通过表空间的快照输出,获取其前滚最小恢复时间戳记(为标准世界时(Coordinated Universal Time,UTC)),如:
db2 get snapshot for tablespaces on sample
表空间名 = USERSPACE1
表空间标识 = 2
......
最小恢复时间 = 2006-05-27 16:23:21.000000
将返回的最小恢复时间戳加上 8 个小时,转换为本地时间戳记,同样为 2006-05-28 00.23.21.000000,与上述两种方法返回的结果一致。