20

MySQL5.6复制之Binary Log Group Commit

Binlog是server层记录数据改变的日志,存储引擎层是最终记录数据变化的地方,为了保证复制架构中,主从数据保持一致,就需要做到主库上binlog中的更新也一定在存储引擎层被记录(redo log),同时还需要保证存储引擎层上的提交顺序与binlog中记录更新的顺序保持一致,所以就需要这么一种提交机制two-phrase commit protocol(2PC)。

在2PC中,通过binlog中是否存在更新的事务来判断,存储引擎层的更新是全部提交还是全部回滚;通过prepare_commit_mutex使得事务顺序化提交,保证存储引擎端的commit顺序与binlog的写入顺序一致。

继续阅读全文

17

配置MySQL远程复制

MySQL远程复制的用途很广,常见的用于数据库的负载均衡,主库写,从库读,由于读锁是允许并发的,可有效提高并发处理能力。关于MySQL的高性能(High Performance)和高可用性(High availability)配置,推荐看看O’Reilly的《High Performance MySQL》一书。此外,远程复制对于远程数据交换也是有用的,如果你需要在不同的区域交换数据,不妨考虑的MySQL远程复制。

继续阅读全文

16

MySQL双向复制简单配置步骤

MySQL从3.23版本起就已经内置了复制(Replication)的功能,我们可以配置成master-slave模式,也可以配置为master-master模式。方法很简单,这里就master-master的配置简单的记录下来,我这里测试环境是mysql 5.1.31,一个是自己用源代码编译的,一个是用的xampp1.7里自带的。

继续阅读全文