高性能MySQL-第十章 复制(1)

MySQL内建的复制功能是构建基于MySQL的大规模、高性能应用的基础,同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。

复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以被配置成另外一台服务器的主库。主库和备库之间可以有多种不同的组合方式。
MySQL支持两种复制方式:基于行的复制和基于语句的复制(逻辑复制)。这两种方式都是通过在主库上记录二进制日志、在备库重放日志的方式来实现异步的数据复制。
复制比较常见的用途:
数据分布
负载均衡
备份
高可用性和故障切换
MySQL升级测试
复制有三个步骤:
在主库上把数据更改记录到二进制日志(Binary Log)中(这些记录被称为二进制日志事件)。
备库将主库上的日志复制到自己的中继日志(Relay Log)中。
备库读取中继日志中的事件,将其重放到备库数据之上。
1、配置复制
为MySQL服务器配置复制,分为以下几步:
在每台服务器上创建复制账号。
配置主库和备库。
通知备库连接到主库并从主库复制数据。
1、复制的原理
一、基于语句的复制
在MySQL 5.0及之前的版本中只支持基于语句的复制(也称为逻辑复制)。基于语句的复制模式下,主库会记录那些造成数据更改的查询,当备库读取并重放这些事件时,实际上只是把主库上执行过的SQL再执行一遍。
二、基于行的复制
MySQL 5.1开始支持基于行的复制,这种方式会将实际数据记录在二进制日志中,跟其他数据库的实现比较相像。最大的好处是可以正确的复制每一行。一些语句可以被更加有效的复制。
原文地址:https://www.cnblogs.com/zhishuiyushi/p/12584409.html