关键字:
RWC、同步状态、系统函数、金仓数据库
一、概述
KES RWC 通过流复制机制进行主备同步,为了方便观察主备的同步情况,KES提供了系统函数和视图方便用户观察当前集群的同步情况。
二、查看集群同步的方法
sys_stat_replication
sys_stat_replication是一个动态统计视图,连接主机查询此视图可以当前连接到主机的备机以及同步状态。其中与同步状态相关的主要有如下几列:
state:当前的WAL 发送状态,可能的值是startup/catchup/streaming/backup/stopping。当显示为streaming状态时,说明备机已经追赶上主机,处于正常的流复制状态。
sync_state:当前备机的同步状态,可能的值是 async/potential/sync/quorum。
sent_lsn/write_lsn/flush_lsn/replay_lsn: 可以观察主机发送WAL的日志以及备机上write、flush、replay WAL日志的位置,如下图,说明备机与主机处于同步状态。
test=# select * from sys_stat_replication; pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | repl ay_lag | sync_priority | sync_state | reply_time -------+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+--------------+-----------+-----------+-----------+-----------+------------+-----------+-----------+----- -------+---------------+------------+------------------------------- 15442 | 10 | system | internal_backup | 127.0.0.1 | | 38866 | 2024-08-15 17:22:55.162453+08 | | streaming | 0/70540A0 | 0/70540A0 | 0/70540A0 | 0/70540A0 | | | | 0 | async | 2024-08-15 17:23:28.486505+08 (1 row) |
sys_wal_lsn_diff
当出现备机与主机不一致的情况时,可能需要了解更详细的延迟信息,此时可以使用sys_wal_lsn_diff来观察备机和主机日志位置间相差的字节数。
test=# select * from sys_wal_lsn_diff('0/70540A0', '0/70540A0'); sys_wal_lsn_diff ------------------ 0 (1 row) |
三、总结
通过KES提供的视图和系统函数,我们可以简单快捷的观测主备的同步情况,让我们对RWC的集群状态有更全面的了解。此外,除了监测集群状态,在问题排查时需要采集更多信息,为此KES RWC还有二进制工具帮助查看详细的WAL日志信息,通过解析日志能够对同步状态有更细致的了解,后续会展开说明如何通过二进制工作解析WAL日志。