摘录地址:http://www.cnblogs.com/stacks/p/7171648.html
1、主从复制集群:
主服务器负责数据写入,从服务器负责读操作。
主服务器所有的操作都写入二进制日志,从服务器开启中继日志和两个线程:
(1)sql_thread:负责从中继日志读取内容,然后replay到数据库中;
(2)io_thread:负责连接主服务器,把主服务器的二进制日志复制到自己的中继日志;
2、双主复制集群配置
主服务器和从服务器同时开启二进制日志和中继日志,数据可以写入任何一个服务器,然后都可以同步到另一台服务器,这样两个库就都可以提供读写工作了。
3、半同步复制集群配置
复制集群默认采用的都是异步方式,即数据写入主服务器则直接返回数据写入成功,而不会等待从服务器写入成功,此种方法可以提高性能,不过可能会导致数据不一致问题。半同步表示让一台服务器和主服务器采用同步写入方式,数据写入到从服务器才返回数据写入成功,这样会损失一定性能,不过当主服务器宕机之后这才从服务器可以立刻接管主服务器,他们的数据都是一致的。
4、复制过滤器
复制过滤器表示可以指定只复制指定的表或者只复制指定的库,其他的表和库都不进行复制,两种方法可以实现:
主服务器实现:主服务器指定只有指定的表或者库的修改信息才传递到从服务器的中继日志,但是主服务器出现问题之后会丢失未复制表和库的数据;
从服务器实现:所有二进制日志都传到从服务器的中继日志,但是sql_thread只执行指定表和库的修改语句,当主服务器出现故障,则不会丢失数据,所有建议采用从服务器的复制过滤;