更新时间:2024-08-20 GMT+08:00

双集群容灾查询函数

  • gs_get_local_barrier_status()

    描述:两地三中心跨Region容灾特性开启后,主集群和灾备集群进行日志同步,通过barrier日志在主集群的落盘,在灾备集群的回放来确定主集群归档日志进度与灾备集群日志回放进度。gs_get_local_barrier_status用于查询灾备集群每个节点当前的日志回放情况。

    返回值类型:text

    barrier_id:灾备集群某节点当前回放到的最新barrier ID。

    barrier_lsn:灾备集群某节点当前回放到的最新barrier ID的Log Sequence Number ( LSN )。

    archive_lsn:灾备集群某节点当前已获得归档日志的位置,该参数当前未生效。

    flush_lsn:灾备集群某节点当前已完成刷盘日志位置。

    gaussdb=# select * from gs_get_local_barrier_status();
                   barrier_id                |    barrier_lsn    |    archive_lsn    |     flush_lsn     
    -----------------------------------------+-------------------+-------------------+-------------------
     csn_000000000000000028741_1719458320165 | 00000000/2BB4B538 | 00000000/00000000 | 00000000/00000000
    (1 row)
  • gs_hadr_in_recovery()

    描述:两地三中心跨Region容灾特性开启后,查询当前节点是否处于基于目标barrier的日志恢复中,还在恢复中返回true。只有完成日志恢复,才会启动switchover流程中的灾备集群升为生产集群的步骤,需要系统管理员角色执行。

    返回值类型:Boolean

    gaussdb=# select * from gs_hadr_in_recovery();
     is_in_recovery 
    ----------------
     t
    (1 row)

    该函数只有在容灾集群启动计划内switchover时使用。

  • gs_streaming_dr_get_switchover_barrier()

    描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询灾备集群参与容灾的CN与首备DN实例是否已接收到switchover barrier日志并完成回放,已完成返回true。灾备集群只有在所有DN实例都完成switchover barrier日志回放,才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤(需要系统管理员角色)。

    返回值类型:Boolean

    备注:该函数只有在流式容灾解决方案中容灾数据库实例启动计划内switchover时使用。

    gaussdb=# select * from gs_streaming_dr_get_switchover_barrier();
     get_switchover_barrier 
    ------------------------
     f
    (1 row)
  • gs_streaming_dr_service_truncation_check()

    描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询主集群参与容灾的CN与主DN实例是否已完成switchover barrier日志发送,已完成返回true。只有完成日志发送,才会启动switchover流程中的生产数据库实例降为灾备数据库实例的步骤(需要系统管理员角色)。

    返回值类型:Boolean

    备注:该函数只有在容灾数据库实例启动计划内switchover时使用。

    gaussdb=# select * from gs_streaming_dr_service_truncation_check();
     complete_truncation 
    ---------------------
     f
    (1 row)
  • gs_hadr_local_rto_and_rpo_stat()

    描述:显示流式容灾的本地节点数据库实例和灾备数据库实例日志流控信息(如果在没有参与流式容灾的节点执行,如备DN或部分CN节点,则可能返回空)。

    返回值类型:record,具体各个字段的类型和含义如表1所示。

    表1 gs_hadr_local_rto_and_rpo_stat参数说明

    参数

    类型

    描述

    hadr_sender_node_name

    text

    节点的名称,包含主数据库实例和备数据库实例首备。

    hadr_receiver_node_name

    text

    备数据库实例首备名称。

    source_ip

    text

    主数据库实例主DN IP地址。

    source_port

    int

    主数据库实例主DN通信端口。

    dest_ip

    text

    备数据库实例首备DN IP地址。

    dest_port

    int

    备数据库实例首备DN通信端口。

    current_rto

    int

    流控的信息,当前主备数据库实例的日志rto时间(单位:秒)。

    target_rto

    int

    流控的信息,目标主备数据库实例间的rto时间(单位:秒)。

    current_rpo

    int

    流控的信息,当前主备数据库实例的日志rpo时间(单位:秒)。

    target_rpo

    int

    流控的信息,目标主备数据库实例间的rpo时间(单位:秒)。

    rto_sleep_time

    int

    RTO流控信息,为了达到目标rto,预期主机walsender所需要的睡眠时间(单位:微秒)。

    rpo_sleep_time

    int

    RPO流控信息,为了达到目标rpo,预期主机xlogInsert所需要的睡眠时间(单位:微秒)。

    gaussdb=# select * from gs_hadr_local_rto_and_rpo_stat();
     hadr_sender_node_name  | hadr_receiver_node_name  |  source_ip   | source_port |   dest_ip   | dest_port | current_rto | target_rto | current_rpo | target_rpo | rto_sleep_time | rpo_sleep_time 
    ------------------------+--------------------------+--------------+-------------+-------------+-----------+-------------+------------+-------------+------------+----------------+----------------
     dn_6001_6002_6003_6004 | cbg_order_b_hadr_dn_6001 | <IP> |       <PORT> | <IP> |     <PORT> |           0 |          0 |           2 |          0 |              0 |              0
    (1 row)
  • gs_hadr_remote_rto_and_rpo_stat()

    描述:显示流式容灾的其他所有分片或CN数据库实例和灾备数据库实例日志流控信息(一般在CN节点执行;如果在DN节点执行,可能返回为空)。

    返回值类型:record,具体各个字段的类型和含义如表2所示。

    表2 gs_hadr_remote_rto_and_rpo_stat

    参数

    类型

    描述

    hadr_sender_node_name

    text

    节点的名称,包含主数据库实例和备数据库实例首备。

    hadr_receiver_node_name

    text

    备数据库实例首备名称。

    source_ip

    text

    主数据库实例主DN IP地址。

    source_port

    int

    主数据库实例主DN通信端口。

    dest_ip

    text

    备数据库实例首备DN IP地址。

    dest_port

    int

    备数据库实例首备DN通信端口。

    current_rto

    int

    流控的信息,当前主备数据库实例的日志rto时间(单位:秒)。

    target_rto

    int

    流控的信息,目标主备数据库实例间的rto时间(单位:秒)。

    current_rpo

    int

    流控的信息,当前主备数据库实例的日志rpo时间(单位:秒)。

    target_rpo

    int

    流控的信息,目标主备数据库实例间的rpo时间(单位:秒)。

    rto_sleep_time

    int

    RTO流控信息,为了达到目标rto,预期主机walsender所需要的睡眠时间(单位:微秒)。

    rpo_sleep_time

    int

    RPO流控信息,为了达到目标rpo,预期主机xlogInsert所需要的睡眠时间(单位:微秒)。

    gaussdb=# select * from gs_hadr_remote_rto_and_rpo_stat();
     hadr_sender_node_name  | hadr_receiver_node_name  |  source_ip   | source_port |   dest_ip    | dest_port | current_rto | target_rto | current_rpo | target_rpo | rto_sleep_time | rpo_sleep_time 
    ------------------------+--------------------------+--------------+-------------+--------------+-----------+-------------+------------+-------------+------------+----------------+----------------
     dn_6001_6002_6003_6004 | cbg_order_b_hadr_dn_6001 | <IP> |       <PORT> | <IP>  |     <PORT> |           0 |          0 |           4 |          0 |              0 |              0
     dn_6013_6014_6015_6016 | cbg_order_b_hadr_dn_6007 | <IP> |       <PORT> | <IP> |     <PORT> |           0 |          0 |           2 |          0 |              0 |              0
     dn_6009_6010_6011_6012 | cbg_order_b_hadr_dn_6005 | <IP> |       <PORT> | <IP> |     <PORT> |           0 |          0 |           2 |          0 |              0 |              0
     dn_6005_6006_6007_6008 | cbg_order_b_hadr_dn_6003 | <IP>  |       <PORT> | <IP>  |     <PORT> |           0 |          0 |           4 |          0 |              0 |              0
     cn_5002                | cbg_order_b_hadr_cn_5002 | <IP>  |       <PORT> | <IP> |     <PORT> |           0 |          0 |           1 |          0 |              0 |              0
    (5 rows)