MySQL主从复制

简介

数据库运行时,一些因素可能会导致服务运行不正常,用户访问数据受阻。对于互联网公司,尤其是购物网站而言,这种情况造成的损失是无法估量的。因此,对数据库进行“备份”也是必不可少的操作。当主要的数据库死机时,系统能够快速地切换到备用的数据库上。本章将详细介绍数据库集群中的主从复制原理和操作流程。

主从复制原理

主从复制又被称为AB复制,主要用于实现数据库集群中的数据同步。实现MySQL的AB复制时,数据库的版本应尽量保持一致。本节将为读者详细介绍主从复制的原理。
在主从复制集群中,主数据库把数据更改的操作记录到二进制日志中,从数据库分别启动I/O线程和SQL线程,用于将主数据库中的数据复制到从数据库中。其中,I/O线程主要将主数据库上的日志复制到自己的中继日志中,SQL线程主要用于读取中继日志中的事件,并将其重放到从数据库之上。另外,系统会将I/O线程已经读取的二进制日志的位置信息存储在master.info文件中,将SQL线程已经读取的中继日志的位置信息存储在relay-log.info文件中。随着版本的更新,在MySQL 5.6.2之后,MySQL允许将这些状态信息保存在Table中,不过在更新之前需要用户在配置文件中进行声明,具体的参数如下。
[mysqld]
master-info-repository = TABLE -----FILE表示以文件方式
relay-log-info-repository = TABLE -----FILE表示以文件方式

主从复制原理如图所示
在这里插入图片描述

MySQL实现主从复制的前提是作为主服务器的数据库服务器必须开启二进制日志。主从复制集群的工作流程如下。
(1)主服务器上面的任何修改都会通过自己的I/O线程保存在二进制日志里。
(2)从服务器上面也会启动一个I/O线程,通过配置好的用户名和密码连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个中继日志的末端,并将读取到的主服务器端的二进制日志的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚地告诉主服务器:我需要某个二进制日志的某个位置之后的日志内容,请发给我。
(3)从服务器的SQL线程检测到中继日志中新增加了内容后,会马上解析日志中的内容,并在自身执行。需要注意,每个从服务器都会收到主服务器二进制日志中的全部内容的副本,除非另行指定,否则,从服务器将执行来自主服务器二进制日志文件的所有的操作语句。另外,从服务器每次进行同步时,都会记录二进制日志坐标(坐标包含文件名和从主服务器上读取的位置,即master-info),以便下次连接使用。由于每个从服务器分别记录了当前二进制日志的位置,因此可以断开从服务器的连接,重新连接,然后恢复处理。

主从复制配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值