博客
关于我
MySQL集群之实现半同步复制
阅读量:751 次
发布时间:2019-03-21

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

CentOS8 下 MySQL8.0 实现半同步复制

半同步复制是一项高效的数据库复制机制,可以在主节点暂停时减少延迟的副作用。本文将具体说明在 CentOS8 上配置 MySQL8.0 的半同步复制步骤。

准备工作

  • 设置主节点(10.0.0.8)和从节点(10.0.0.18 和 10.0.0.28)

  • 创建并授权复制用户

    CREATE USER 'repluser'@'10.0.0.%' IDENTIFIED BY '123456';GRANT REPLICATION SLAVE ON . TO 'repluser'@'10.0.0.%';

    这个用户应拥有x509证书,以确保通信的安全性。

  • 安装和配置插件

  • 安装插件

    • 在主节点安装 semisync_master.so 插件:
    INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
    • 在从节点安装 semisync_slave.so 插件:
    INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
  • 配置文件修改

    • 主节点配置
    [mysqld]server-id=8log-binrpl_semi_sync_master_enabled=1rpl_semi_sync_master_timeout=3000
    • 从节点配置
    [mysqld]server-id=
    <从节点id,例如18或28>
    log-binrpl_semi_sync_slave_enabled=1

    请确保 log-bin 选项启用,以支持半同步日志记录。

  • 启动数据库服务并重启

    systemctl restart mysqld

    注意:如果使用 mysqld 而不是 mysql_upgrade,可能需要重新启动数据库。

  • 配置主从关系

  • 从节点设置主节点信息

    CHANGE MASTER TOMASTER_HOST='10.0.0.8'MASTER_USER='repluser'MASTER_PASSWORD='123456'MASTER_PORT=3306MASTER_LOG_FILE='Centos8-bin.*MASTER_LOG_POS=156;
  • 启动复制并验证状态

    START SLAVE;SHOW SLAVE STATUS\G

    查看输出,确保从节点连接到主节点。部分状态变量如 Rpl_semi_sync_master_enabled 应为 1,表示半同步已开启。

    另外,检查全局状态变量:

    SHOW GLOBAL VARIABLES LIKE '%semi%';

    预期会显示 rpl_semi_sync_master_enabledrpl_semi_sync_slave_enabled 为 1。

  • 验证半同步功能

  • 在主节点创建ATEST

    CREATE DATABASE db1;
  • 验证从节点访问

    如果从节点已连接,可以查询主节点的数据库:

    SHOW CREATE DATABASE db1;
  • 分析延迟表现

    停止一个从节点:

    STOP SLAVE;

    主节点数据应在3秒内写入,而从节点有连接的情况下不受影响。

  • 总结

    以上步骤完整指导了在 CentOS8 上配置 MySQL8.0 的半同步复制。通过设立合适的插件和配置,确保主从节点之间的数据同步高效且可靠。

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

    你可能感兴趣的文章
    pandas某一列转数组list
    查看>>
    Pandas模块,我觉得掌握这些就够用了!
    查看>>
    Pandas玩转文本处理!
    查看>>
    SpringBoot 整合 Mybatis Plus 实现基本CRUD功能
    查看>>
    pandas的to_sql方法中使用if_exists=‘replace‘
    查看>>
    Springboot ppt转pdf——aspose方式
    查看>>
    pandas读取csv编码utf-8报错
    查看>>
    pandas读取parquet报错
    查看>>
    pandas读取数据用来深度学习
    查看>>
    pandas读取文件时,不去掉前面的0 保留原有的数据格式
    查看>>
    Pandas进阶大神!从0到100你只差这篇文章!
    查看>>
    spring5-介绍Spring框架
    查看>>
    pandas,python - 如何在时间序列中选择特定时间
    查看>>
    Spring 框架之 AOP 原理深度剖析
    查看>>
    Pandas:如何按列元素的组合分组,以指示基于不同列的值的同现?
    查看>>
    Pandas:将一列与数据帧的所有其他列进行比较
    查看>>
    PANDA和GLOB:将文件夹中的所有xlsx文件转换为CSV类型错误:__init__()获得意外的关键字参数‘;xfid‘;
    查看>>
    panda查找想要找的行合并成一个新pd
    查看>>
    PANDA:基于多列对数据表的行运行计算,并将输出存储在新列中
    查看>>
    PandoraFMS 监控软件 SQL注入漏洞复现
    查看>>