更新时间:2026-10-21 GMT+08:00
分享

双集群容灾查询函数

  • gs_get_local_barrier_status()

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

    返回值类型:text

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

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

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

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

  • gs_hadr_in_recovery()

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

    返回值类型:Boolean

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

  • gs_streaming_dr_get_switchover_barrier()

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

    返回值类型:Boolean

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

  • gs_streaming_dr_service_truncation_check()

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

    返回值类型:Boolean

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

  • 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所需要的睡眠时间(单位:微秒)。

  • 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所需要的睡眠时间(单位:微秒)。

  • gs_is_wal_truncate_complete()

    描述:用于查询灾备集群升主时,日志在线截断是否完成,已完成返回true。每次查询到已完成后会重置该值。

    返回值类型:Boolean

    备注:该函数只有在灾备集群升主时使用。

  • gs_hadr_local_replay_delay_stat()

    描述:灾备集群延迟回放场景下,显示灾备集群barrier接收、barrier回放以及延迟时间等信息。

    返回值类型:record

    表3 gs_hadr_local_replay_delay_stat返回参数说明

    参数名

    类型

    描述

    node_name

    text

    实例名。

    receive_barrier

    text

    接收携带时间戳的日志信息。

    receive_barrier_lsn

    text

    接收携带时间戳的日志LSN。

    receive_time

    timestamp with time zone

    解析接收时间戳。

    replay_barrier

    text

    回放携带时间戳的日志信息。

    replay_barrier_lsn

    text

    回放携带时间戳的日志LSN。

    replay_time

    timestamp with time zone

    解析回放时间戳。

    delay_replay

    int8

    延迟回放配置值。

    current_remain_interval

    int8

    延迟实际间隔。

    示例:

    gaussdb=# SELECT * FROM gs_hadr_local_replay_delay_stat();
      node_name   |             receive_barrier             | receive_barrier_lsn |        receive_time        |             replay_barrier              | replay_barrier_lsn |        replay_time         | delay_replay | current_remain_interval 
    --------------+-----------------------------------------+---------------------+----------------------------+-----------------------------------------+--------------------+----------------------------+--------------+-------------------------
     dn_6001_6002 | csn_000000000000000023117_1772440335494 | 00000000/1225B4B0   | 2026-03-02 16:32:15.494+08 | csn_000000000000000023111_1772440331492 | 00000000/1225B320  | 2026-03-02 16:32:11.492+08 |            0 |                       4
    (1 row)
  • disaster_cluster_run_mode()

    描述:用于在连接时查询连接的是主集群还是灾备集群。查询该函数主集群返回0,灾备集群返回1。

    返回值类型:int

    示例:

    1
    2
    3
    4
    gaussdb=# SELECT pg_catalog.disaster_cluster_run_mode();  
    ----------------
                  0              
    (1 row)
    
  • pgxc_disaster_read_node()

    描述:用于在连接时返回容灾集群相关的集群信息。

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

    备注:主集群查询会报错,仅用于容灾集群查询。

    表4 pgxc_disaster_read_node

    参数

    类型

    描述

    node_name

    name

    节点的名称。

    node_type

    char

    节点的类型:D代表首备数据节点,S代表级联备数据节点,C代表查询节点。

    node_host

    name

    节点的通讯IP地址。

    node_port

    int

    节点的通讯端口。

    node_host1

    name

    节点的通讯虚拟IP地址。

    node_port1

    int

    节点的通讯虚拟端口。

    nodeis_active

    boolean

    节点是否正常:正常为true,异常为false。

    示例:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    gaussdb=# SELECT * from pg_catalog.pgxc_disaster_read_node(); 
      node_name   | node_type | node_host  | node_port | node_host1 | node_port1 | nodeis_active 
    --------------+-----------+------------+-----------+------------+------------+---------------
     dn_6001_6002 | D         | 8.92.0.126 |      4000 | 8.92.0.126 |       4000 | t
     dn_6003_6004 | D         | 8.92.0.128 |      4020 | 8.92.0.128 |       4020 | t
     dn_6005_6006 | D         | 8.92.0.127 |      4040 | 8.92.0.127 |       4040 | t
     dn_6007_6008 | D         | 8.92.0.68  |      4060 | 8.92.0.68  |       4060 | t
     dn_6001_6002 | S         | 8.92.0.127 |      4000 | 8.92.0.127 |       4000 | t
     dn_6003_6004 | S         | 8.92.0.68  |      4020 | 8.92.0.68  |       4020 | t
     dn_6005_6006 | S         | 8.92.0.126 |      4040 | 8.92.0.126 |       4040 | t
     dn_6007_6008 | S         | 8.92.0.128 |      4060 | 8.92.0.128 |       4060 | t
     cn_5001      | C         | 8.92.0.128 |      9080 | 10.0.0.128 |       9080 | t
     cn_5002      | C         | 8.92.0.127 |      9080 | 10.0.0.127 |       9080 | t
    (10 rows)
    

相关文档