
# 双数据库实例容灾查询函数
#### 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：灾备数据库实例某节点当前已完成刷盘日志位置。
#### 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，具体各个字段的类型和含义如[表1]所示。
 表1gs_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()
描述：显示流式容灾其它非本地数据分片的主数据库实例和灾备数据库实例日志流控信息，当前版本不支持该函数。
#### gs_hadr_create_recovery_pause_barrier()
描述：投产模式下，主数据库实例产生能使灾备数据库实例回放卡住的一致性barrier点，仅投产模式开启后生效。
#### gs_is_wal_truncate_complete()
描述：投产模式下，用于投产失败后查询当前灾备数据库实例的日志在线截断是否完成，已完成返回true。
返回值类型：Boolean
#### gs_change_dorado_state(device_name cstring, dorado_state cstring, term int)
描述：初始化用户权限，主要功能为更改dorado共享卷通道状态。
返回值类型：Boolean
| 参数类型 | 参数名          | 类型   | 共享卷通道名称       |
|:---|:---|:---|:---|
| 输入参数 | device_name  | text | 共享卷通道名称。      |
| 输入参数 | dorado_state | text | 共享卷状态。        |
| 输入参数 | term         | int  | 当前数据库实例term值。 |
   
#### gs_get_dorado_state()
描述：查看dorado共享卷通道的健康和运行状态。
返回值类型：record
| 参数类型 | 参数名           | 类型   | 描述       |
|:---|:---|:---|:---|
| 输出参数 | device_name   | text | 共享卷通道名称。 |
| 输出参数 | dorado_health | text | 共享卷健康状态。 |
| 输出参数 | dorado_state  | text | 共享卷运行状态。 |
   
