博客
关于我
瀚高HGHAC高可用集群配置逻辑复制槽方法
阅读量:739 次
发布时间:2019-03-22

本文共 1926 字,大约阅读时间需要 6 分钟。

瀚高数据库集群配置逻辑复制槽指南

目录

  • 确认集群wal日志级别为logical
  • 确认hot_standby_feedback参数为on
  • 动态修改集群配置参数
  • 逻辑复制使用逻辑复制槽
  • 主备节点查看逻辑复制槽信息
  • 集群切换逻辑复制槽不受影响,但订阅端需要重新订阅
  • 断流测试

  • 1. 确认集群wal日志级别为logical

    在高可用集群(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

    2. 确认hot_standby_feedback参数为on

    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

    3. 动态修改集群配置参数

    在高可用集群中,可以动态修改集群配置参数,而无需重启服务。例如,添加或删除复制槽:

    highgo=# hghactl edit-config

    系统会提示确认操作,执行后修改会立即生效。


    4. 逻辑复制使用逻辑复制槽

    方法一:创建订阅指定逻辑复制槽

    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');

    注意事项:

    • 创建订阅时不指定复制槽,默认会自动创建逻辑复制槽。
    • 修改订阅时指定新的逻辑复制槽,旧的逻辑复制槽会被集群自动删除。

    5. 主备节点查看逻辑复制槽信息

    主库

    highgo=# select * from pg_replication_slots;

    备库

    highgo=# select * from pg_replication_slots;

    6. 集群切换逻辑复制槽不受影响,但订阅端需要重新订阅

    6.1 切换后逻辑复制槽状态

    • 新主库(逻辑复制槽active为f):

      已有订阅请参考下文更改订阅信息,数据自动同步。若使用VIP主备切换,无需更改订阅信息。

    • 新备库(逻辑复制槽active为f):

      创建新的订阅,订阅端需重新订阅。

    6.2 重新创建订阅之后,逻辑复制槽active变为t


    7. 断流测试

    7.1 关闭逻辑复制数据库,查看逻辑复制槽信息

    highgo=# pg_stop_logical_replication;

    查看逻辑复制槽状态:

    highgo=# select * from pg_replication_slots;

    7.2 启动逻辑复制数据库,查看逻辑复制槽信息

    highgo=# pg_start_logical_replication;

    查看逻辑复制槽状态:

    highgo=# select * from pg_replication_slots;

    以上步骤详细指导了如何在高可用集群中配置逻辑复制槽,确保集群高可用性和数据同步稳定性。

    转载地址:http://glzwk.baihongyu.com/

    你可能感兴趣的文章
    NTFS文件权限管理实战
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    ntp server 用法小结
    查看>>
    ntpdate 通过外网同步时间
    查看>>
    ntpdate同步配置文件调整详解
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP服务器
    查看>>
    NTP配置
    查看>>
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>
    NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
    查看>>
    null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
    查看>>
    Number Sequence(kmp算法)
    查看>>