补充:PostgreSQL pg_stat_replication sync_state introduce
PostgreSQL 9.2引入同步复制后, pg_stat_replication的sync_state列有3种状态.
sync
async
potential
分别代表同步standby, 异步standby, 可升级为同步的standby.
状态来自以下函数 : pg_stat_get_wal_senders
[测试]
环境:
1个 primary, 3个 standby.
第一种配置 :primary配置
standby1配置
standby2配置
standby3配置
primary查询
如果sync节点挂掉, 按synchronous_standby_names的顺序, 第一个potential节点会变成sync状态.
当test1重新起来后又会变成sync状态.
第二种配置 :primary配置
standby1配置不变
standby2配置不变
standby3配置不变
primary查询
test3变成异步了. 因为test3没有配置在primary的synchronous_standby_names 中.
第三种配置 :primary配置
synchronous_standby_names = 'test1'
standby1配置不变
standby2配置不变
standby3配置不变
primary查询
test2,test3变成异步了. 因为test2,test3没有配置在primary的synchronous_standby_names 中.
1. src/backend/replication/walsender.c
以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。