资源由 www.eimhe.com 美河学习在线收集分享
高性能的 MySQL 主从复制架构
MySQL 支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个
其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以
跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,
它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起
发生的任何更新,然后封锁并等待主服务器通知新的更新。
请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必
须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间
的冲突。
单向复制有利于健壮性、速度和系统管理:
· 主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务
器作为份。
· 通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应
时间。SELECT 查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的
语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。如果非更新查询为主,该
负载均衡策略很有效,但一般是更新查询。
· 使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在
备份过程中主服务器可以继续处理更新。
MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾、备份、恢复、负载均
衡等都是有极大帮助的。
MySQL 复制过程
Mysql 的复制(replication)是一个异步的复制,从一个 Mysql instace(称之为 Master)
复制到另一个 Mysql instance(称之 Slave)。实现整个复制操作主要由三个进程完成的,
其中两个进程在 Slave(Sql 进程和 IO 进程),另外一个进程在 Master(IO 进程)上。 要
实施复制,首先必须打开 Master 端的 binary log(bin-log)功能,否则无法实现。因为
整个复制过程实际上就是 Slave 从 Master 端获取该日志然后再在自己身上完全顺序的执
行日志中所记录的各种操作。 复制的基本过程如下: