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

    你可能感兴趣的文章
    Mysql学习总结(67)——MYSQL慢查询日志
    查看>>
    Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
    查看>>
    Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
    查看>>
    Mysql学习总结(6)——MySql之ALTER命令用法详细解读
    查看>>
    Mysql学习总结(70)——MySQL 优化实施方案
    查看>>
    Mysql学习总结(71)——MySQL 重复记录查询与删除总结
    查看>>
    Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
    查看>>
    Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
    查看>>
    Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
    查看>>
    Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
    查看>>
    Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
    查看>>
    Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
    查看>>
    Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
    查看>>
    Mysql学习总结(78)——MySQL各版本差异整理
    查看>>
    Mysql学习总结(79)——MySQL常用函数总结
    查看>>
    Mysql学习总结(7)——MySql索引原理与使用大全
    查看>>
    Mysql学习总结(80)——统计数据库的总记录数和库中各个表的数据量
    查看>>
    Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
    查看>>
    Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
    查看>>
    Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
    查看>>