复制的基本知识
MySQL复制相对比较简单,就是将主数据库的DDL和DML操作通过二进制日志传到复制服务器(也叫从服务器)上,然后在从库
上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。需要注意的是,虽然所有数据库的二进制日志都混合在同样的文件中,复制时仍然可以通过参数仅将复制特定的数据库到从服务器,或仅复制特定的表到从服务器。具体可参考:
http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-do-db
其他主要商业关系型数据库则提供更为复杂多样的分布式数据解决方案。例如SQL Server提供,
1,数据镜像。和MySQL一样通过在从节点上重做log实现,但只能有一个从节点。可以实现自动failover。
2,log shipping。和MySQL复制的实现和功能完全一致。
3,用快照实现的复制等等。
复制的好处有三方面:
1,如果主库出现问题,可以快速切换到从库提供服务。
2,可以在从库上执行查询操作,降低主库的访问压力。
3,可以在从库上执行备份,以避免备份期间影响主库的服务。
异步复制与半同步复制
在MySQL5.5之前,MySQL的复制是异步操作,即主库的更新操作不关心是否成功复制到了从库,只要主库的数据更新完成,就认为数据