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

    你可能感兴趣的文章
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>
    Mysql8在Windows上离线安装时忘记root密码
    查看>>
    MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
    查看>>
    mysql8的安装与卸载
    查看>>
    MySQL8,体验不一样的安装方式!
    查看>>
    MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
    查看>>
    Mysql: 对换(替换)两条记录的同一个字段值
    查看>>
    mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
    查看>>
    MYSQL:基础——3N范式的表结构设计
    查看>>
    MYSQL:基础——触发器
    查看>>
    Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
    查看>>
    mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
    查看>>
    mysqldump 参数--lock-tables浅析
    查看>>
    mysqldump 导出中文乱码
    查看>>
    mysqldump 导出数据库中每张表的前n条
    查看>>
    mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
    查看>>