
# 双数据库实例容灾查询函数
- 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_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_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_upload_obs_file('slot_name', 'src_file', 'dest_file') 描述：两地三中心跨Region容灾特性开启后，主数据库实例上传数据到OBS上的函数。
  返回值类型：void
  slot_name：主数据库实例创建的复制槽的名字。
  src_file：主数据库实例数据目录下的需要上传的文件位置。
  dest_file：上传到OBS上对应的文件位置。
  
- gs_download_obs_file('slot_name', 'src_file', 'dest_file') 描述：两地三中心跨Region容灾特性开启后，灾备数据库实例从OBS上下载数据到本地的函数。
  返回值类型：void
  slot_name：灾备数据库实例创建的复制槽的名字。
  src_file：OBS需要下载的文件位置。
  dest_file：灾备数据库实例数据目录下需要存放下载文件对应的文件位置。
  
- gs_get_obs_file_context('file_name', 'slot_name') 描述：两地三中心跨Region容灾特性开启后，查询OBS上对应文件的内容。
  返回值类型：text
  file_name：OBS上文件的文件名。
  slot_name：主/灾备数据库实例创建的复制槽的名字。
  
- gs_set_obs_file_context('file_name', 'file_context','slot_name') 描述：两地三中心跨Region容灾特性开启后，在OBS上创建文件并写入对应的内容。
  返回值类型：text
  file_name：OBS上文件的文件名。
  file_context： 写入文件的内容。
  slot_name：主/灾备数据库实例创建的复制槽的名字。
  
- gs_get_hadr_key_cn() 描述：两地三中心跨Region容灾特性开启后，在OBS上创建文件并写入对应的内容。
  返回值类型：text
  file_name：OBS上文件的文件名。
  file_context：写入文件的内容。
  slot_name：主/灾备数据库实例创建的复制槽的名字。
  
- gs_hadr_has_barrier_creator() 描述：两地三中心跨Region容灾特性开启后，查询当前节点是否存在barrier_creator线程，存在返回true（需要系统管理员角色）。
  返回值类型：Boolean
  备注：该函数只有在容灾数据库实例启动计划内switchover时使用。
  
- gs_hadr_in_recovery() 描述：两地三中心跨Region容灾特性开启后，查询当前节点是否处于基于目标barrier的日志恢复中，还在恢复中返回true。只有完成日志恢复，才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤（需要系统管理员角色）。
  返回值类型：Boolean
  备注：该函数只有在容灾数据库实例启动计划内switchover时使用。
  
- gs_streaming_dr_get_switchover_barrier() 描述：两地三中心跨Region容灾-基于流式复制的解决方案中，查询灾备数据库实例的DN实例是否已接收到switchover barrier日志并完成回放，已完成返回true。灾备数据库实例只有在所有DN实例都完成switchover barrier日志回放，才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤（需要系统管理员角色）。
  返回值类型：Boolean
  备注：该函数只有在流式容灾解决方案中容灾数据库实例启动计划内switchover时使用。
  
- gs_streaming_dr_service_truncation_check() 描述：两地三中心跨Region容灾-基于流式复制的解决方案中，查询主数据库实例的DN实例是否已完成switchover barrier日志发送，已完成返回true。只有完成日志发送，才会启动switchover流程中的生产数据库实例降为灾备数据库实例的步骤（需要系统管理员角色）。
  返回值类型：Boolean
  备注：该函数只有在容灾数据库实例启动计划内switchover时使用。
  

- gs_hadr_local_rto_and_rpo_stat() 描述：显示流式容灾的主数据库实例和备数据库实例日志流控信息（只可在主数据库实例的主DN使用，备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，预期主机xlog插入（Insert）所需要的睡眠时间（单位：微秒）。 |
     
  

- gs_hadr_remote_rto_and_rpo_stat() 描述：显示流式容灾其它非本地数据分片的主数据库实例和备数据库实例日志流控信息，集中式部署场景不支持该函数。
  
 
