备库足够多时,会对主库造成很大的负载。每个备库会在主库上创建一个线程,并执行binlog dump 命令。该命令回读取二进制日志文件中的数据并将其发送给备库。每个备库都会重复这样的工作,不会共享binlong dump资源。 如果需要多个备库,一个好的办法是从主库移除负载并使用分发主库。分发主库事实上也是一个备库,她的唯一目的就是提取和提供主库的二进制日志。多个备库连接到分发主库,使主库摆脱负担。为了避免分发主库做实际的查询,可以将它的表改为blackhole存储引擎。
为主库设置备库的基本原则
一个MYSQL备库实例只能有一个主库。 每个备库必须有一个唯一的服务器ID 一个主库可以有多个备库(或相应的一个备库可以有多个兄弟备库) 如果打来了log_slave_updates选项,一个备库可以把其主库上的数据变化传播到其他备库。
一主多备
主 - 主动模式下的主- 主复制
主动 - 被动模式下的主- 主复制
拥有备库的主 - 主 结构
环形复制
主库、分发主库 以及备库
网友评论