MySQL 主从复制的简单实习和主从复制的原理

MySQL 主从复制原理

MySQL 主从复制(Master-Slave Replication)是一种数据复制技术,用于在多个 MySQL 数据库服务器之间复制数据,从而实现高可用性和负载均衡。其基本原理包括以下几个步骤:

1. 主服务器配置(Master Configuration)

在主服务器上进行一些必要的配置以启用二进制日志(Binary Log),这些日志记录了所有对数据库的更改操作。

配置步骤:

  1. 编辑 MySQL 配置文件

    • 打开主服务器的 MySQL 配置文件(通常是 my.cnfmy.ini)。
    • 添加或修改以下配置项:
      [mysqld]
      log-bin=mysql-bin
      server-id=1
      
    • log-bin 参数启用二进制日志。
    • server-id 参数设置主服务器的唯一标识符。
  2. 重启 MySQL 服务

    • 保存配置文件并重启 MySQL 服务以应用更改。
  3. 创建复制用户

    • 在 MySQL 控制台中创建一个专门用于复制的用户,并授予适当的权限:
      CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
      GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
      FLUSH PRIVILEGES;
      

2. 从服务器配置(Slave Configuration)

在从服务器上进行配置,使其能够从主服务器读取和应用二进制日志。

配置步骤:

  1. 编辑 MySQL 配置文件

    • 打开从服务器的 MySQL 配置文件。
    • 添加或修改以下配置项:
      [mysqld]
      server-id=2
      
    • server-id 参数设置从服务器的唯一标识符(必须不同于主服务器的 server-id)。
  2. 重启 MySQL 服务

    • 保存配置文件并重启 MySQL 服务以应用更改。
  3. 设置从服务器

    • 在从服务器的 MySQL 控制台中运行以下命令以配置复制:
      CHANGE MASTER TO
      MASTER_HOST='master_ip_address',
      MASTER_USER='replica',
      MASTER_PASSWORD='password',
      MASTER_LOG_FILE='mysql-bin.000001',
      MASTER_LOG_POS=  4;
      
    • MASTER_HOST 是主服务器的 IP 地址。
    • MASTER_USERMASTER_PASSWORD 是在主服务器上创建的复制用户。
    • MASTER_LOG_FILEMASTER_LOG_POS 是主服务器当前的二进制日志文件名和位置(通过在主服务器上运行 SHOW MASTER STATUS; 获取)。
  4. 启动复制

    • 在从服务器的 MySQL 控制台中启动复制进程:
      START SLAVE;
      

3. 复制过程

在主从服务器都配置好并启动复制后,实际的复制过程包括以下步骤:

  1. 主服务器生成二进制日志

    • 主服务器记录所有对数据库的更改操作,并将其写入二进制日志文件。
  2. 从服务器读取二进制日志

    • 从服务器通过 IO 线程从主服务器读取二进制日志,并将其写入本地的中继日志(Relay Log)。
  3. 从服务器应用中继日志

    • 从服务器的 SQL 线程读取中继日志,并将日志中记录的更改应用到从服务器的数据库中。

4. 监控和管理

可以通过以下命令监控和管理复制状态:

  • 查看主服务器状态
    SHOW MASTER STATUS;
    

查看从服务器状态

SHOW SLAVE STATUS\G;

停止和启动从服务器的复制进程

STOP SLAVE;
START SLAVE;

优点和限制

优点

  • 高可用性:提供数据冗余,主服务器故障时可以切换到从服务器。
  • 负载均衡:读操作可以分散到多个从服务器,提高读性能。
  • 数据备份:从服务器可以用作数据备份的来源。

限制

  • 延迟:从服务器应用主服务器的更改可能有延迟。
  • 单点故障:如果主服务器故障且没有配置自动故障转移,整个系统可能会受到影响。

主从复制的原理

  • MySQL 主从复制的原理是通过在主服务器上启用二进制日志记录所有对数据库的更改,从服务器通过IO线程读取主服务器的二进制日志并将其写入本地的中继日志,SQL线程再读取中继日志并将更改应用到从服务器的数据库中,从而实现主从服务器之间的数据同步。这种机制允许从服务器在主服务器故障时接管读操作,提高系统的高可用性,并通过分散读操作到多个从服务器实现负载均衡。此外,从服务器还可以作为数据备份的来源,以提高数据的可靠性和可恢复性。
  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

磨灭不了的学习印记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值