博客
关于我
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_enabled 和 rpl_semi_sync_slave_enabled 为 1。

  • 验证半同步功能

  • 在主节点创建ATEST

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

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

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

    停止一个从节点:

    STOP SLAVE;

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

  • 总结

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

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

    你可能感兴趣的文章
    python2和3的区别
    查看>>
    python2和python3的pip版本升级
    查看>>
    python2和python3的区别
    查看>>
    python2备份交换机配置脚本
    查看>>
    Python3 - 在字符串格式化程序参数中使用变量
    查看>>
    Python3 A*寻路算法实现
    查看>>
    python3 grpc安装
    查看>>
    python3 mysql 封装多表_python3 mysql-多表查询
    查看>>
    python3 mysql8_Python MySQL8.0 错误:authentication plugin 'calling_sha2_password' is not supported....
    查看>>
    Python关键代码总览!从Zero到Hero必看的考点
    查看>>
    python3 robotframework+pycharm框架搭建
    查看>>
    Python3 shutil模块
    查看>>
    Python关于strftime函数详细解析 附实战代码
    查看>>
    Python3 tutorial day3
    查看>>
    python3 week4
    查看>>
    Python3 创建数组
    查看>>
    python3 套接字异常(a byte-like object is required not str)
    查看>>
    python3 实现用户三次输入错误记录黑名单并对该用户登录锁定-day1
    查看>>
    python3 文本变图片
    查看>>
    Python3 查看 com 组件的属性
    查看>>