高性能MySQL–主从复制

  •   
  • 1016
  • mysql
  • 0
  • dodobook
  • 2017/03/03

MySQL内建的复制功能是构建基于MySQL的大规模、高性能应用的基础,这类应用使用所谓的“水平扩展”的架构。我们可以通过为服务器配置一个或多个备库的方式来进行数据的同步。复制功能不仅有利于构建高性能的应用,同事也是高可用、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。

高性能MySQL

复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以背配置成另外一台服务器主库。主库和备库之间可以有多种不同的组合方式。

MySQL支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过在主库上记录二进制日志、在备库重放日志的方式来实现异步的数据复制。

复制通常不会增加主库的开销,主要是启用二进制日志带来的开销,但是出于备份或及时从崩溃中恢复的目的,这点开销也是必要的。

复制的常见用途:数据分布、负载均衡、备份、高可用性和故障切换、MySQL升级测试。

MySQL的复制有三个步骤:1.在主库上把数据更改记录到二进制日志(Binary Log)中,这些记录被称为二进制日志时间。2.备库将主库上的日志复制到自己的中继日志(Relay Log)中。3.备库读取中继日志中的事件,将其重放到备库数据库之上。

MySQL服务器配置复制非常简单,总的来说分为以下几步:1.在每台服务器上创建复制账号。2.配置主库和备库。通知备库连接到主库并从主库复制数据。

在主库上二进制日志最重要的选项的是 sync_binlog: sync_binlog=1 如果开启该选项,MySQL每次在提交事务前会将二进制日志同步到磁盘,保证在服务器崩溃时不会丢失事件。如果无法容忍服务器崩溃导致表损坏,推荐使用InnoDB。read_only选项可以组织大部分用户更改非临时表。

MySQL的复制有,基于语句的复制,基于行的复制。

MySQL的复制的拓扑:1.一个MySQL备库实例只能有一个主库。2.每个备库必须有一个唯一的服务器ID。3.一个主库可以有多个备库。4.如果打开了log_slave_updates选项,一个备库可以把其主库上的数据变化传播到其他备库。

一主库多备库适合于少量写大量读。MySQL不支持多主库复制。

MySQL复制是其内建功能中的“瑞士军刀”,显著增加了MySQL的功能和可用性。事实上这也是MySQL这么快如此流行的关键原因之一。

说到底,爱情就是一个人的自我价值在别人身上的反映。——爱默生

高性能MySQL--MySQL架构与历史

高性能MySQL--MySQL基准测试

高性能MySQL--服务器性能剖析

高性能MySQL--Schema与数据类型优化

高性能MySQL--创建高性能的索引

高性能MySQL--查询性能优化

高性能MySQL--MySQL高级特性

高性能MySQL--优化服务器设置

高性能MySQL--操作系统和硬件优化

高性能MySQL--主从复制

高性能MySQL--可扩展的MySQL

高性能MySQL--高可用性

高性能MySQL--云端的MySQL

高性能MySQL--应用层优化

高性能MySQL--备份与恢复

高性能MySQL--MySQL用户工具