确定 HADR 备用数据库状态
Db2® 高可用性灾难恢复 (HADR) 备用数据库的状态决定了它可以执行哪些操作。
过程
要确定主-备用 HADR 数据库对中 HADR 备用数据库的状态,请执行以下操作:
- 从主数据库或备用数据库发出带有 -hadr 参数的 db2pd 命令,并检查HADR_STATEfield:
- 如果从主数据库发出查询,那么该命令将对 HADR 设置中的每个备用数据库返回一组数据。
- 如果从备用数据库发出该命令,那么该命令仅返回单组数据,这是因为备用数据库不能包含有关其他备用数据库的信息。
- 在主数据库或启用了读取的备用数据库上发出使用 MON_GET_HADR 表函数的查询来确定
HADR_STATE 字段:
- 如果在主数据库上发出该查询,那么此表函数将为 HADR 设置中的每个备用数据库都返回一行数据。
- 如果在备用数据库上发出该查询,那么此表函数将仅返回一行数据,这是因为备用数据库无法获得有关其他备用数据库的信息。
示例
- 具有一个 HADR 备用数据库的示例
- 其 HADR 设置具有单个备用数据库的 DBA 从主数据库发出 MON_GET_HADR 表函数,以查询 HADR 数据库的状态:
将返回以下信息,说明 HADR 对处于对等状态:select HADR_STATE from table (mon_get_hadr(NULL))HADR_STATE -------------------- PEER 1 record(s) selected. - Db2 pureScale 环境中具有一个 HADR 备用数据库的示例
- 其 HADR 设置具有由三个成员组成的集群(成员 0、1 和 2)的 DBA 从主数据库发出 MON_GET_HADR 表函数,以查询所有成员上 HADR 数据库的状态:
将返回以下信息:select LOG_STREAM_ID, PRIMARY_MEMBER, STANDBY_MEMBER, HADR_STATE, HADR_FLAGS from table (mon_get_hadr(-2))
此输出指示成员 1 处于受助远程同步复制状态,成员 0 是提供帮助的成员。 如果 DBA 在将成员自变量指定为成员 1 的情况下发出此表函数,那么结果如下所示:LOG_STREAM_ID PRIMARY_MEMBER STANDBY_MEMBER HADR_STATE HADR_FLAGS ------------- -------------- -------------- -------------- ----------------------- 0 0 0 PEER 1 0 0 REMOTE_CATCHUP ASSISTED_REMOTE_CATCHUP 2 2 0 PEER 3 record(s) selected.select LOG_STREAM_ID, PRIMARY_MEMBER, STANDBY_MEMBER, HADR_STATE, HADR_FLAGS from table (mon_get_hadr(1)) LOG_STREAM_ID PRIMARY_MEMBER STANDBY_MEMBER HADR_STATE HADR_FLAGS ------------- -------------- -------------- -------------- ---------- 1 1 0 DISCONNECTED - 具有多个 HADR 备用数据库的示例
- 其 HADR 设置具有多个备用数据库的 DBA 从主数据库发出 MON_GET_HADR 表函数,以查询 HADR 数据库的状态:
将返回以下信息:select STANDBY_ID, HADR_STATE from table (mon_get_hadr(NULL))
主体备用,总有STANDBY_ID数据1,处于对等状态。 辅助备用,STANDBY_ID值2和3,永远不能处于对等状态。STANDBY_ID HADR_STATE ---------- -------------- 1 PEER 2 REMOTE_CATCHUP 3 REMOTE_CATCHUP 3 record(s) selected.