双数据库实例容灾查询函数
- 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 ------------+-------------------+-------------------+------------------- | 00000000/00000000 | 00000000/00000000 | 00000000/00000000 (1 row)
- gs_hadr_in_recovery()
描述:两地三中心跨Region容灾特性开启后,查询当前节点是否处于基于目标barrier的日志恢复中,还在恢复中返回true。只有完成日志恢复,才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤(需要系统管理员角色)。
返回值类型:Boolean
备注:该函数只有在容灾数据库实例启动计划内switchover时使用。
gaussdb=# select * from gs_hadr_in_recovery(); is_in_recovery ---------------- t (1 row)
- gs_streaming_dr_get_switchover_barrier()
描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询灾备数据库实例的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容灾-基于流式复制的解决方案中,查询主数据库实例的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使用,备DN以及备数据库实例均上不可获取到统计信息)。
返回值类型: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 | cluster_b_hadr_dn_6001 | <IP> | <PORT> | <IP> | <PORT> | 0 | 0 | 0 | 0 | 0 | 0 (1 row)
- gs_hadr_remote_rto_and_rpo_stat()