MySQL

什么是Master-Slave协议?

MySQL的复制(replication)功能是支持主从复制的,主从复制是指将主数据库的DDL和DML操作通过二进制日志(binary log)传到从数据库上,然后在从数据库上对这些日志重新执行(也叫重做),从而使得从数据库的数据与主数据库的数据保持一致。

下面是 MySQL Master-Slave 复制的基本工作流程:

主服务器记录数据更改:当主服务器上的数据库发生数据更改(如插入、更新、删除操作)时,MySQL 会将这些更改记录到二进制日志(binlog)中。

从服务器连接主服务器:从服务器通过与主服务器建立连接,并发送一个请求,告知主服务器它要开始复制数据了。

主服务器发送数据:一旦从服务器与主服务器建立了连接并发送了复制请求,主服务器会将自己的二进制日志文件传送给从服务器。

从服务器应用数据更改:从服务器接收到主服务器的二进制日志后,会将其中的数据更改逐条应用到自己的数据库中,从而使得自己的数据与主服务器保持同步。

MySQL 的 Master-Slave 复制协议具有以下特点和优势:

高可用性和容错性:通过将数据复制到多个从服务器上,可以实现数据的冗余备份和故障转移,从而提高了系统的可用性和容错性。
读写分离:通过将读操作分发到从服务器上,可以减轻主服务器的负载,提高系统的读取性能。
数据分发:可以将不同地区或不同业务场景的数据分发到不同的从服务器上,实现数据的局部化存储和访问。
灾备和备份:从服务器可以用作主服务器的灾备和备份,一旦主服务器发生故障,可以快速切换到从服务器上提供服务,从而保证系统的持续运行。
总的来说,MySQL 的 Master-Slave 复制协议是一种重要的数据库复制技术,可以帮助实现数据的同步备份、读写分离、灾备和备份等功能,提高了数据库系统的可用性、性能和可靠性。