博客
关于我
mysql主从复制,读写分离,半同步复制实现
阅读量:789 次
发布时间:2023-02-11

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

MySQL复制与半同步复制配置指南

主从服务器时间同步配置

确保主从服务器时间一致是MySQL复制的基础。建议使用NTPdate进行时间同步,以下是配置步骤:

yum -y install ntpdatecrontab -e */5 * * * * /usr/sbin/ntpdate cn.pool.ntp.org > /dev/null

注意事项:如果执行crontab时出现command not found错误,需先安装crontab:

yum -y install vixie-croncrontab -lchkconfig --list crondservice crond star

如何设置从服务器为只读

为了确保从服务器仅限只读,需启用read-only选项。以下是详细步骤:

  • 修改MySQL配置文件:
  • vim /etc/my.cnf:+62read-only=ON
    1. 启动服务并验证:
    2. service mysqld restartmysql -e "show global variables like '%read_only%'"
      1. 在主服务器上创建一个具有所有权限的用户,并授予从服务器访问权限:
      2. grant all on hellodb.* to 'testuser'@'192.168.%.%' identified by 'testpass';
        1. 在从服务器上验证用户访问权限:
        2. mysql -u testuser -h 192.168.81.133 -p

          MySQL复制事务安全配置

          默认情况下,MySQL采用异步复制机制。为了提高事务安全,可以通过以下方式进行优化:

        3. 关闭autocommit,在主服务器上手动提交事务:
        4. set global autocommit=0;
          1. 配置二进制日志文件同步:
          2. sync_binlog=1

            半同步复制概述

            半同步复制是一种混合性复制机制,结合了同步和异步的优点。以下是其核心概念和工作原理:

            半同步复制的工作原理

          3. 事件提交与等待机制:主服务器在提交事务时会等待至少一个从服务器确认已接收事件。
          4. 事件接收与处理:从服务器接收事件后,需将其写入relay-log并刷新磁盘。
          5. 动态切换机制:如果主服务器未在指定时间内接收到事件确认,会自动切换为异步复制模式。
          6. 半同步复制的优势

            • 性能优化:减少主服务器的等待时间。
            • 高可用性:在主服务器故障时,仍能保证部分数据一致性。
            • 灵活性:支持混合部署,既可以采用半同步,也可以切换为异步模式。

            半同步复制的安装与配置

            主服务器配置

          7. 安装半同步主节点插件:
          8. mysql -e "install plugin semisync_master.so"
            1. 启用插件:
            2. set global rpl_semi_sync_master_enabled=ON;set global rpl_semi_sync_master_timeout=1000;
              1. 查看插件状态:
              2. show global variables like '%semi%';

                从服务器配置

              3. 安装半同步从节点插件:
              4. mysql -e "install plugin semisync_slave.so"
                1. 启用插件:
                2. set global rpl_semi_sync_slave_enabled=ON;
                  1. 查看插件状态:
                  2. show global variables like '%semi%';

                    半同步复制的实际测试

                  3. 在主服务器上执行事务操作:
                  4. use hellodb;create table t1 (id int);
                    1. 在从服务器上验证数据同步:
                    2. mysql -u testuser -h 192.168.81.133 -p show databases;use hellodb;show tables;
                      1. 重启IO_THREAD并启动从服务器:
                      2. STOP SLAVE IO_THREAD;START SLAVE IO_THREAD;

                        如何验证半同步复制生效

                      3. 在主服务器上执行DML操作:
                      4. use hellodb;create table t4 (Name char(10));
                        1. 查看半同步复制状态:
                        2. show global status like '%semi%';
                          1. 检查从服务器的接收情况:
                          2. mysql -u testuser -h 192.168.81.133 -p show global variables like '%semi%';

                            通过以上步骤,可以实现MySQL的高效、安全的半同步复制配置。

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

    你可能感兴趣的文章
    mysql主从同步配置方法和原理
    查看>>
    mysql主从复制 master和slave配置的参数大全
    查看>>
    MySQL主从复制几个重要的启动选项
    查看>>
    MySQL主从复制及排错
    查看>>
    mysql主从复制及故障修复
    查看>>
    MySQL主从复制的原理和实践操作
    查看>>
    webpack loader配置全流程详解
    查看>>
    mysql主从复制,读写分离,半同步复制实现
    查看>>
    MySQL主从失败 错误Got fatal error 1236解决方法
    查看>>
    MySQL主从架构与读写分离实战
    查看>>
    MySQL主从篇:死磕主从复制中数据同步原理与优化
    查看>>
    mysql主从配置
    查看>>
    MySQL之2003-Can‘t connect to MySQL server on ‘localhost‘(10038)的解决办法
    查看>>
    MySQL之CRUD
    查看>>
    MySQL之DML
    查看>>
    Mysql之IN 和 Exists 用法
    查看>>
    MYSQL之REPLACE INTO和INSERT … ON DUPLICATE KEY UPDATE用法
    查看>>
    MySQL之SQL语句优化步骤
    查看>>
    MYSQL之union和order by分析([Err] 1221 - Incorrect usage of UNION and ORDER BY)
    查看>>
    Mysql之主从复制
    查看>>