博客
关于我
【Mysql】 高级优化 --- Mysql 主从复制
阅读量:284 次
发布时间:2019-03-01

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

MySQL 主从复制详解

一、复制的基本原理

MySQL 主从复制的核心机制基于两台服务器:主服务器(Master)和从服务器(Slave)。以下是其工作原理:

  • 主服务器记录变更:主服务器将数据库变更记录到二进制日志(Binary Log)。这些记录包含了数据更改的具体时间和事件。

  • 从服务器拷贝日志:从服务器连接到主服务器,获取其二进制日志内容,并将其拷贝到中继日志(Relay Log)。

  • 从服务器应用变更:从服务器根据中继日志中的记录,重放这些变更操作,将数据变更应用到自己的数据库中。

  • MySQL 复制采用异步且串行化的方式,确保数据的一致性。

    二、复制的基本原则

    MySQL 主从复制遵循以下基本原则:

  • 单一主服务器:每个从服务器只能有一个主服务器。

  • 唯一的服务器ID:每个从服务器必须有唯一的服务器ID,确保主从关系无误。

  • 多个从服务器:主服务器可以有多个从服务器,提高数据的冗余和负载均衡能力。

  • 三、复制的最大问题

    在实际应用中,MySQL 主从复制可能面临以下问题:

  • 延迟:由于数据异步复制,可能导致数据不一致。

  • 网络连接不稳定:网络问题可能导致二进制日志的传输中断。

  • 配置错误:如服务器ID冲突、日志路径错误等问题,会导致复制失败。

  • 四、一主一从常见配置

    1. MySQL 版本一致

    确保主从服务器使用相同版本的MySQL,避免兼容性问题。

    2. 后台服务运行

    两台服务器应以后台服务运行,不影响正常业务处理。

    3. 配置文件路径

    主机和从机的配置文件路径需一致,建议使用小写字母。

    4. 防火墙设置

    主从服务器需相互开放相关端口,确保通信畅通。

    5. 用户权限设置

    为从服务器账户授予REPLICATION SLAVE权限,确保复制权限。

    6. 二进制日志配置

    确保主服务器启用二进制日志,并指定正确的存储路径。

    7. 数据库选择

    可选择性配置复制的具体数据库,减少资源消耗。

    8. 数据同步策略

    根据业务需求,制定合理的数据同步策略,避免高负载。

    五、详细配置步骤

    1. 主服务器配置

    在 my.ini 中添加以下设置:

    [server]server-id=1log-bin=mysqlbindatadir=/var/lib/mysql/data

    2. 从服务器配置

    在 my.cnf 中添加以下设置:

    [server]server-id=2log-bin=/var/lib/mysql/mysqlbin

    3. 用户权限

    在主服务器执行:

    GRANT REPLICATION SLAVE ON *.* TO 'username'@'from_host' IDENTIFIED BY 'password';

    4. 主从同步

    从服务器执行:

    CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='username', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysqlbin.000001', MASTER_LOG_POS=1070;

    5. 启动复制

    从服务器执行:

    START SLAVE;

    6. 验证状态

    执行:

    SHOW SLAVE STATUS\G

    确保 Slave_IO_Running 和 Slave_SQL_Running 均为 "Yes"。

    六、常见错误处理

  • 网络连接问题:检查防火墙设置,确保端口开放。

  • 日志文件缺失:确认主服务器的二进制日志路径和文件名。

  • 权限不足:检查从服务器账户权限是否正确。

  • 延迟问题:优化网络带宽,减少复制压力。

  • 通过以上配置和优化,可以实现稳定、高效的MySQL主从复制,确保数据的一致性和可用性。

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

    你可能感兴趣的文章
    python 存入数据库bigint_python基础_MySQL的bigint类型
    查看>>
    python 学习 面向对象编程
    查看>>
    Python 学习小结
    查看>>
    Python 学习日记第三篇 -- 字典
    查看>>
    Python 学习笔记(一)Data type
    查看>>
    python 安装 easy_install 和 pip 流程
    查看>>
    python 安装echarts
    查看>>
    python 安装opencv及问题解决
    查看>>
    Python 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
    查看>>
    Python 安装避坑指南:从入门到进阶
    查看>>
    Python 安装配置详解
    查看>>
    python 实现儿童算术游戏
    查看>>
    python 实现字符串转整型
    查看>>
    Python 实现定时任务的八种方案!
    查看>>
    python 实现将RGBA 转换为RGB
    查看>>
    Python 实现自动化测试 dubbo 协议接口
    查看>>
    python编程基础之十六
    查看>>
    python字符串input输入_Python input()函数:获取用户输入的字符串
    查看>>
    python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
    查看>>
    Python 对mysql数据库的操作
    查看>>