博客
关于我
瀚高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 web自动化测试 —— 文件上传
    查看>>
    Python web自动化测试 —— 文件上传!
    查看>>
    Python Web自动化测试开发环境搭建(附安装包与虚拟机环境)
    查看>>
    python win32api键盘_Python win32api.keybd_event模拟键盘输入
    查看>>
    python Windows显示当前鼠标坐标
    查看>>
    python Workbook 表格宽度
    查看>>
    python write报错a byte-like object is required.not str
    查看>>
    PYTHON调用大模型实现图片生成
    查看>>
    python yaml.dump 缩进错误
    查看>>
    Python yield generator
    查看>>
    Python yield 使用浅析
    查看>>
    Python yield解析:深入理解生成器的魔力
    查看>>
    Python You are using pip version 10.0.1, however version 19.3.1 is available.
    查看>>
    python zipfile模块学习笔记(一)
    查看>>
    Python zip函数 详解(全)
    查看>>
    Python \r\n与\n的转换
    查看>>
    python __new__中单例的作用
    查看>>
    python | aiofiles,一个超酷的 Python 库!
    查看>>
    python | akshare,一个超强的 开源Python 金融数据接口库!
    查看>>
    python | alabaster,一个强大的 关于alabaster 主题 Python 库!
    查看>>