博客
关于我
瀚高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/

    你可能感兴趣的文章
    Python和RF编写web自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>
    python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
    查看>>
    python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
    查看>>
    Python命名中尾随下划线有什么好处?
    查看>>
    Python启动脚本
    查看>>
    Python听写汇总结果
    查看>>
    python吊打Excel?屁!那是你不会用!
    查看>>
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
    查看>>
    python各进制的表述与转换
    查看>>
    python各种库安装
    查看>>
    python可视化matplotlib_如何使用Python中最强大的可视化工具Matplotlib?
    查看>>
    python可维护性_使用这7大神器,让你的Python 代码更容易于维护
    查看>>
    Python只运行一次while循环
    查看>>
    python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
    查看>>
    Python变量命名方法-ChatGPT4o作答
    查看>>
    Python变量与运算符
    查看>>
    Python变量/运算符/函数/模块/string
    查看>>
    python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法
    查看>>