高性能MySQL 第十章 复制

 

复制解决的基本问题是让一台服务器的数据与其余服务器保持同步。一台主库的数据能够同步到多台备库上,备库自己也能够被配置成另一台服务器的主库。主库和备库之间能够有多重不一样的组合方式。服务器

 

MySQL 支持两种复制方式:网络

一、基于行的复制负载均衡

二、基于语句的复制异步

基于语句的复制(也称为逻辑复制)早在 MySQL3.23 版本中就存在,而基于行的复制方式在 5.1 版本中才被加进来。这两种方式都是经过在主库上记录二进制日志、在备库重放日志的方式来实现异步的数据复制。这意味着,在同一时间点备库上的数据可能与主库存在不一致,而且没法保证主备之间的延迟。一些大的语句可能致使备库产生几秒、几分钟甚至几个小时的延迟。测试

 

复制解决的问题:优化

一、数据分布编码

MySQL 复制一般不会对带宽形成很大的压力,但在 5.1 版本引入的基于行的复制会比传统的基于语句的复制模式的带宽压力更大。能够随意地中止或开始复制,并在不一样的地址位置来分布数据备份,例如不一样的数据中心。即便在不稳定的网络环境下,远程复制也能够工做。但若是为了保持很低的复制延迟,最好有一个稳定的、低延迟链接。设计

二、负载均衡日志

经过 MySQL 复制能够将读操做分布到多个服务器上,实现对读密集型应用的优化,而且实现很方便,经过简单的代码修改就能实现基本的负载均衡。对于小规模的应用,能够简单地对机器名作硬编码或使用 DNS 轮询(将一个机器指向多个 IP 地址)。固然也能够使用更复杂的方法,例如网络负载均衡这一类的标准负载均衡解决方案,可以很好地将负载分配到不一样的 MySQL 服务器上。Linux 虚拟服务器也能很好地工做,第 11 张将详细地讨论负载均衡。同步

三、备份

对于备份来讲,复制是一项颇有意义的技术补充,但复制既不是备份也不可以去掉备份。

四、高可用性和故障切换

复制可以帮助应用程序避免 MySQL 单点失败,一个包含复制的设计良好的故障切换系统可以显著地缩短宕机时间。

五、MySQL 升级测试

这种作法比较广泛,使用一个更高版本的 MySQL 做为备库,保证在升级所有实例前,查询可以在备库按照预期执行。

相关文章
相关标签/搜索