博客
关于我
【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_RunningSlave_SQL_Running 均为 "Yes"。

    六、常见错误处理

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

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

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

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

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

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

    你可能感兴趣的文章
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>