本文共 1926 字,大约阅读时间需要 6 分钟。
在高可用集群(HGHAC)中,wal日志级别必须设置为logical,否则无法正常配置逻辑复制槽。执行以下命令确认当前配置:
highgo=# show wal_level;wal_level---------logical
如果当前wal_level不是logical,执行以下命令修改参数:
highgo=# alter system set wal_level = logical;ALTER SYSTEM
修改完成后,所有节点需要重新启动 PostgreSQL 服务:
highgo=# systemctl restart postgresql
hot_standby_feedback参数用于控制备库是否向主库反馈查询执行情况。默认情况下该参数为off,但在高可用集群中通常需要设置为on。执行以下命令确认当前状态:
highgo=# show hot_standby_feedback;hot_standby_feedback---------off
如果参数为off,执行以下命令修改为on:
highgo=# alter system set hot_standby_feedback = on;ALTER SYSTEM
修改完成后,需要重新加载配置:
highgo=# pg_reload_conf();
验证修改结果:
highgo=# show hot_standby_feedback;hot_standby_feedback---------on
在高可用集群中,可以动态修改集群配置参数,而无需重启服务。例如,添加或删除复制槽:
highgo=# hghactl edit-config
系统会提示确认操作,执行后修改会立即生效。
highgo=# create subscription sub1 connection 'host=x.x.10.216 port=5866 dbname=highgo user=highgo password=Hello@123' publication pub1 with (copy_data = true, create_slot = false, enabled = true, slot_name = 'cdc_slot1');
highgo=# alter subscription sub2 set (slot_name = 'cdc_slot2');
注意事项:
highgo=# select * from pg_replication_slots;
highgo=# select * from pg_replication_slots;
新主库(逻辑复制槽active为f):
已有订阅请参考下文更改订阅信息,数据自动同步。若使用VIP主备切换,无需更改订阅信息。新备库(逻辑复制槽active为f):
创建新的订阅,订阅端需重新订阅。highgo=# pg_stop_logical_replication;
查看逻辑复制槽状态:
highgo=# select * from pg_replication_slots;
highgo=# pg_start_logical_replication;
查看逻辑复制槽状态:
highgo=# select * from pg_replication_slots;
以上步骤详细指导了如何在高可用集群中配置逻辑复制槽,确保集群高可用性和数据同步稳定性。
转载地址:http://glzwk.baihongyu.com/