DB2 V10.1 for Linux, UNIX, and Windows

初始化高可用性灾难恢复 (HADR)

使用此过程来设置和初始化 DB2® 高可用性灾难恢复 (HADR) 主数据库和一个备用数据库。

关于此任务

可以通过命令行处理器 (CLP) 或通过调用 db2HADRStart API 来初始化 HADR。

过程

要使用 CLP 以在系统上首次初始化 HADR:

  1. 确定每个 HADR 数据库的主机名、主机 IP 地址和服务名称或端口号。

    如果主机使用多个网络接口,请确保 HADR 主机名或 IP 地址映射至预期的接口。您需要在 /etc/services 中为每个受保护数据库分配不同的 HADR 端口。这些端口不能与分配给实例的端口相同。主机名只能映射至一个 IP 地址。

    注: 主数据库和备用数据库的实例名称无需相同。
  2. 通过发出以下命令在预期主数据库上配置建议的索引日志记录和重新创建设置:
    "UPDATE DB CFG FOR dbname USING
         LOGINDEXBUILD   ON
         LOGARCHMETH1     method"
  3. 通过复原备份映像或初始化分割镜像,根据要作为主数据库的现有数据库来创建备用数据库。

    在以下示例中,BACKUP DATABASERESTORE DATABASE 命令用于初始化备用数据库。在此情况下,NFS 已安装文件系统在这两处都是可访问的。

    在主数据库上发出以下命令:
    BACKUP DB dbname TO /nfs1/backups/db2/dbname
    如果在备用实例上已存在数据库,请将其删除,以便从头开始。现有数据库中的文件可能会干扰 HADR 操作。例如,遗留日志文件可能会将备用数据库引导到与主数据库不兼容的日志链上。发出以下命令以删除数据库:
    DROP DB dbname 
    在备用数据库上发出以下命令:
    RESTORE DB dbname FROM /nfs1/backups/db2/dbname 

    以下示例举例说明,如何通过主数据库的分割镜像来使用 db2inidb 实用程序来初始化备用数据库。此过程是上述备份和复原过程的替代方案。

    在备用数据库上发出以下命令:
    DB2INIDB dbname AS STANDBY
    注:
    1. 主数据库和备用数据库的数据库名称必须相同。
    2. 在执行复原操作或分割镜像初始化后,不要在备用数据库上发出 ROLLFORWARD DATABASE 命令。使用前滚操作的结果可能与在备用数据库上使用 HADR 重放日志略有不同。如果数据库不相同,那么尝试启动备用数据库将会失败。
    3. 使用 RESTORE DATABASE 命令创建备用数据库时,请确保备用数据库仍处于前滚暂挂方式或正在前滚方式。这表示不能发出带有 COMPLETE 选项或 STOP 选项的 ROLLFORWARD DATABASE 命令。在停止前滚后,如果尝试在数据库上执行带有 AS STANDBY 选项的 START HADR 命令,那么将返回错误。
    4. 设置备用数据库时,应该避免使用下列 RESTORE DATABASE 命令选项:TABLESPACEINTOREDIRECTWITHOUT ROLLING FORWARD
    5. 使用 db2inidb 实用程序来设置备用数据库时,不要使用 SNAPSHOTMIRROR 选项。可以指定 RELOCATE USING 选项以更改下列其中一个或多个配置属性:实例名称、日志路径和数据库路径。但是,切勿更改数据库名或表空间容器路径。
  4. 在每个数据库上,设置 hadr_local_hosthadr_local_svchadr_syncmode 配置参数:
    "UPDATE DB CFG FOR dbname USING
         HADR_LOCAL_HOST   hostname
         HADR_LOCAL_SVC    servicename
         HADR_SYNCMODE     syncmode"
    必须在创建备用数据库后设置此步骤、步骤 5 和步骤 6 中的配置参数。如果在创建备用数据库之前设置了备用数据库上的设置,这些设置将反映在主数据库上设置的内容。
    注: 这是一般的 HADR 设置;要了解更高级的配置选项和设置,请参阅相关链接。
  5. 可选: 在备用数据库和主数据库上设置 hadr_target_list 配置参数:
    UPDATE DB CFG FOR dbname USING
         HADR_TARGET_LIST  principalhostname:principalservicename1
    如果您仅使用一个备用数据库,那么这是一个可选步骤(但也是建议的步骤)。如果您设置 hadr_target_list 参数,那么可以动态方式添加其他备用数据库。您还可以利用自动配置行为并在该备用数据库上指定不同的同步方式。
  6. 在每个数据库上,设置 hadr_remote_hosthadr_remote_svchadr_remote_inst 配置参数。
    在主数据库上,通过发出以下命令将这些参数设置为备用数据库上的相应值:
    "UPDATE DB CFG FOR dbname USING
         HADR_REMOTE_HOST   principalhostname
         HADR_REMOTE_SVC    principalservicename
         HADR_REMOTE_INST   principalinstname"
    在备用数据库上,通过发出以下命令将这些参数设置为主数据库上的相应值:
    "UPDATE DB CFG FOR dbname USING
         HADR_REMOTE_HOST   primaryhostname
         HADR_REMOTE_SVC    primaryservicename
         HADR_REMOTE_INST   primaryinstname"

    如果您已配置 hadr_target_list,那么将为这些参数指定正确的值(如果未正确设置其值)。但是,显式地将它们设置为正确值可使正确值立即可用。这些值对于 IBM® Tivoli® System Automation for Multiplatforms (SA MP) 软件很有帮助,该软件可能需要 hadr_remote_host 值才能构造资源名称。

  7. 与备用实例连接,并在备用数据库上启动 HADR,如以下示例中所示:
       START HADR ON DB dbname AS STANDBY
    注: 通常,先启动备用数据库。如果先启动主数据库,那么当未在 hadr_timeout 数据库配置参数指定的时间段内启动备用数据库时,此启动过程将失败。
    备用数据库在启动后会进入本地同步复制状态,在此状态下,将读取和重放本地的可用日志文件。在备用数据库重放所有本地日志后,它将进入远程同步复制暂挂状态。
  8. 与主实例连接,并在主数据库上启动 HADR,如以下示例中所示:
       START HADR ON DB dbname AS PRIMARY
  9. 使用监视接口(MON_GET_HADR 表函数或带 -hadr 选项的 db2pd 命令),验证 HADR 对是否进入预期状态。 在主数据库启动后,备用数据库将进入远程同步复制状态,它将在此状态下接收来自主数据库的日志页并重放这些页面。在备用数据库已重放主数据库机器的磁盘上的所有日志文件后,两个数据库都将进入对等状态(除非您已选择 SUPERASYNC 作为同步方式)
1