博客
关于我
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 generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
    查看>>
    Mysql group by
    查看>>
    MySQL I 有福啦,窗口函数大大提高了取数的效率!
    查看>>
    mysql id自动增长 初始值 Mysql重置auto_increment初始值
    查看>>
    MySQL in 太多过慢的 3 种解决方案
    查看>>
    Mysql Innodb 锁机制
    查看>>
    MySQL InnoDB中意向锁的作用及原理探
    查看>>
    MySQL InnoDB事务隔离级别与锁机制深入解析
    查看>>
    Mysql InnoDB存储引擎 —— 数据页
    查看>>
    Mysql InnoDB存储引擎中的checkpoint技术
    查看>>
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>
    Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql innodb通过使用mvcc来实现可重复读
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    Mysql join原理
    查看>>
    mysql order by多个字段排序
    查看>>
    MySQL Order By实现原理分析和Filesort优化
    查看>>
    mysql problems
    查看>>