重新初始化 HADR 配置以解决错误

重要信息: IBM Cloud Pak® for Data 4.6 版本将于 2025 年 7 月 31 日结束支持 (EOS)。 欲了解更多信息,请参阅 IBM Cloud Pak for Data 版本 4.X 的停止服务公告

IBM Cloud Pak for Data 4.6 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。

您可以重新初始化 Db2®Db2 Warehouse 高可用性灾难恢复 (HADR) 配置,以解决阻止主数据库和备用数据库连接并实现对等状态的错误情况。

关于本任务

由于各种原因,HADR 配置可能会最终陷入错误状态。 在这些情况下,通常数据库的一个副本(主数据库或备用数据库)正常工作,而另一个副本损坏。

例如,在重新引导工作程序节点之后,如果同级窗口到期,随后 HADR 自动化(管理程序)发出强制接管,那么旧的主数据库有时可能会无法恢复正常。 在这种情况下,您将在新主数据库(旧的备用数据库)上的管理程序日志 (/var/log/governor/governor.log) 中找到类似于以下示例的日志条目:

2020-04-01 18:35:38,832 INFO 8991-47423382027648: child(13084) executing db2 takeover hadr on db BLUDB by force peer window only
2020-04-01 18:35:39,084 INFO 8991-47423382027648: SQL1770N  Takeover HADR cannot complete. Reason code = "9".

2020-04-01 18:35:39,085 INFO 8991-47423382027648: we have the mandate to force takeover (window=300)
2020-04-01 18:35:39,086 INFO 8991-47423382027648: Result of DNS resolution of remote endpoint: 10.130.0.39
2020-04-01 18:35:40,096 INFO 8991-47423382027648: child(13151) executing db2 takeover hadr on db BLUDB by force

....

2020-04-01 18:35:54,686 INFO 8991-47423382027648: using cached role(PRIMARY) as of 0.369333982468 seconds ago (threshold 1)
2020-04-01 18:35:54,687 INFO 8991-47423382027648:
                            db2 role is PRIMARY,
                            db2 connect status is DISCONNECTED,
                            db2 state is DISCONNECTED

在旧主数据库 (当前已断开连接的备用数据库) 上,您将在 Db2Db2 Warehouse 数据库 pod 中看到类似于以下内容的控制器日志:

2020-04-01 18:36:01,690 INFO 2668-47200027639168: db2 state is LOCAL_CATCHUP
2020-04-01 18:36:01,690 INFO 2668-47200027639168: startup: waiting on db2 to become peer with primary (waited 20 secs)
2020-04-01 18:36:11,701 INFO 2668-47200027639168: Calling db2pd
2020-04-01 18:36:12,260 INFO 2668-47200027639168: db2pd returned
2020-04-01 18:36:12,262 INFO 2668-47200027639168:
Database BLUDB not activated on database member 0 or this database name cannot be found in the local database directory.

Option -hadr requires -db <database> or -alldbs option and active database.

2020-04-01 18:36:12,262 INFO 2668-47200027639168: db2 state is None
2020-04-01 18:36:12,262 INFO 2668-47200027639168: startup: waiting on db2 to become peer with primary (waited 30 secs)

在重新引导的主机恢复联机后,旧的主数据库始终无法恢复为新的备用数据库。 在这种情况下,唯一的选项是使用以下过程重新初始化 HADR 系统。

过程

  1. 在备用 pod 上停止 HADR:
    oc exec -it <standby_pod> -- manage_hadr -stop
  2. 在主 pod 上停止 HADR:
    oc exec -it <primary_pod> -- manage_hadr -stop
  3. 使用setup_config_hadr 脚本在主 pod 和备用 pod 上设置 HADR。
  4. 在备用 pod 上启动 HADR 服务:
    oc exec -it <standby_pod> -- manage_hadr -start_as standby
  5. 在主 pod 上启动 HADR 服务:
    oc exec -it <primary_pod> -- manage_hadr -start_as primary
  6. 要验证 HADR 设置是否按预期完成,请运行 -status 命令:
    oc exec -it <primary/standby pod> -- manage_hadr -status