
# 双集群容灾查询函数
- gs_get_global_barrier_status() 描述：两地三中心跨Region容灾特性开启后，主集群和灾备集群通过obs进行日志同步，通过barrier日志在主集群的落盘，在灾备集群的回放来确定主集群归档日志进度与灾备集群日志回放进度。gs_get_global_barrier_status用以查询主集群已在obs完成归档的最新global barrier。
  返回值类型：text
  global_barrier_id：全局最新barrier ID
  global_achive_barrier_id：全局最新归档barrier ID
  

- gs_get_local_barrier_status() 描述：两地三中心跨Region容灾特性开启后，主集群和灾备集群通过obs进行日志同步，通过barrier日志在主集群的落盘，在灾备集群的回放来确定主集群归档日志进度与灾备集群日志回放进度。gs_get_local_barrier_status用于查询灾备集群每个节点当前的日志回放情况。
  返回值类型：text
  barrier_id：灾备集群某节点当前回放到的最新barrier ID
  barrier_lsn：灾备集群某节点当前回放到的最新barrier ID的Log Sequence Number ( LSN )
  archive_lsn：灾备集群某节点当前已获得归档日志的位置，该参数当前未生效。
  flush_lsn：灾备集群某节点当前已完成刷盘日志位置。
  
- gs_get_global_barriers_status() 描述：两地三中心跨Region容灾特性-基于OBS的解决方案开启后，主数据库实例和多个灾备数据库实例通过obs进行日志同步，通过barrier日志在主数据库实例的落盘，在灾备数据库实例的回放来确定主数据库实例归档日志进度与灾备数据库实例日志回放进度。gs_get_global_barriers_status用以查询主数据库实例已在obs完成归档的最新global barrier。
  返回值类型：text
  slot_name：容灾使用的槽位名。
  global_barrier_id：全局最新barrier ID。
  global_achive_barrier_id：全局最新归档barrier ID。
  
- gs_upload_obs_file('slot_name', 'src_file', 'dest_file') 描述：两地三中心跨Region容灾特性开启后，主集群上传数据到OBS上的函数。
  返回值类型：void
  slot_name：主集群CN创建的复制槽的名字。
  src_file：主集群CN数据目录下的需要上传的文件的文件位置。
  dest_file：上传到OBS上对应的文件的文件位置。
  
- gs_download_obs_file('slot_name', 'src_file', 'dest_file') 描述：两地三中心跨Region容灾特性开启后，灾备集群从OBS上下载数据到本地的函数。
  返回值类型：void
  slot_name：灾备集群CN创建的复制槽的名字。
  src_file：OBS需要下载的文件的文件位置。
  dest_file：灾备集群CN数据目录下需要存放下载文件对应的文件位置。
  
- gs_get_obs_file_context('file_name', 'slot_name') 描述：两地三中心跨Region容灾特性开启后，查询OBS上对应文件的内容。
  返回值类型：text
  file_name：OBS上文件的文件名。
  slot_name：主/灾备集群CN创建的复制槽的名字。
  
- gs_set_obs_file_context('file_name', 'file_context','slot_name') 描述：两地三中心跨Region容灾特性开启后，在OBS上创建文件并写入对应的内容。
  返回值类型：text
  file_name：OBS上文件的文件名。
  file_context： 写入文件的内容。
  slot_name：主/灾备集群CN创建的复制槽的名字。
  
- gs_get_hadr_key_cn() 描述：两地三中心跨Region容灾特性开启后，在OBS上创建文件并写入对应的内容。
  返回值类型：text
  file_name：OBS上文件的文件名。
  file_context： 写入文件的内容。
  slot_name：主/灾备集群CN创建的复制槽的名字。
  
- gs_hadr_has_barrier_creator() 描述：两地三中心跨Region容灾特性开启后，查询当前cn节点是否存在barrier_creator线程，存在返回true（需要系统管理员角色）。
  返回值类型：Boolean
  备注：该函数只有在容灾集群启动计划内switchover时使用。
  
- gs_hadr_in_recovery() 描述：两地三中心跨Region容灾特性开启后，查询当前节点是否处于基于目标barrier的日志恢复中，还在恢复中返回true。只有完成日志恢复，才会启动switchover流程中的灾备集群升为生产集群的步骤，需要系统管理员角色执行。
  返回值类型：Boolean
  ![](https://support.huaweicloud.com/distributed-devg-v2-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  该函数只有在容灾集群启动计划内switchover时使用。
  
- gs_streaming_dr_get_switchover_barrier() 描述：两地三中心跨Region容灾-基于流式复制的解决方案中，查询灾备集群参与容灾的CN与首备DN实例是否已接收到switchover barrier日志并完成回放，已完成返回true。灾备集群只有在所有DN实例都完成switchover barrier日志回放，才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤（需要系统管理员角色）。
  返回值类型：Boolean
  备注：该函数只有在流式容灾解决方案中容灾数据库实例启动计划内switchover时使用。
  
- gs_streaming_dr_service_truncation_check() 描述：两地三中心跨Region容灾-基于流式复制的解决方案中，查询主集群参与容灾的CN与主DN实例是否已完成switchover barrier日志发送，已完成返回true。只有完成日志发送，才会启动switchover流程中的生产数据库实例降为灾备数据库实例的步骤（需要系统管理员角色）。
  返回值类型：Boolean
  备注：该函数只有在容灾数据库实例启动计划内switchover时使用。
  
- gs_hadr_local_rto_and_rpo_stat() 描述：显示流式容灾的本地节点数据库实例和灾备数据库实例日志流控信息（如果在没有参与流式容灾的节点执行，如备DN或部分CN节点，则可能返回空）。
  返回值类型：record，具体各个字段的类型和含义如下：
  
  | 参数                      | 类型   | 描述                                                   |
  |:---|:---|:---|
  | 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，预期主机xlog插入（Insert）所需要的睡眠时间（单位：微秒）。 |
     
  
- gs_hadr_remote_rto_and_rpo_stat() 描述：显示流式容灾的其他所有分片或CN数据库实例和灾备数据库实例日志流控信息（一般在CN节点执行；如果在DN节点执行，可能返回为空）。
  返回值类型：record，具体各个字段的类型和含义如下：
  
  | 参数                      | 类型   | 描述                                               |
  |:---|:---|:---|
  | 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所需要的睡眠时间（单位：微秒）。 |
     
  
 
