MySQL Semi Sync Replication

本文介绍了MySQL5.5版本中新增的SemiSyncReplication特性,对比了其与传统异步复制的区别,阐述了SemiSyncReplication如何在一定程度上保证数据一致性,同时讨论了其不足之处。

MySQL 5.5 Semi Sync Replication

2009-12-16  |  23:48分类: MySQL  |  标签: MySQL5.5Replicationsemi-syncsemi-sync replication  |  

今天看到MySQL5.5放出了第一个版本MySQL 5.5 Community Edition - Milestone Release,最大的增强莫过于加入了Semi Sync Replication的支持(虽然仍不完善)。

这里做一个科普,简单介绍一下Semisynchronous Replication:

1. Why Semisynchronous Replication?

之前版本的MySQL Replication都是异步(asynchronous)的,主库在执行完一些事务后,是不会管备库的进度的。如果备库不幸落后,而更不幸的是主库此时又出现Crash(例如宕机),这时备库中的数据就是不完整的。简而言之,在主库发生故障的时候,我们无法使用备库来继续提供数据一致的服务了。

Semisynchronous Replication则一定程度上保证提交的事务已经传给了至少一个备库。

2. 为什么是Semi synchronous而不是Full synchronous?

Semi synchronous中,仅仅保证事务的已经传递到备库上,但是并不确保已经在备库上执行完成了。

此外,还有一种情况会导致主备数据不一致。在某个session中,主库上提交一个事务后,会等待事务传递给至少一个备库,如果在这个等待过程中主库Crash,那么也可能备库和主库不一致,这是很致命的。(在主库恢复后,可以通过参数Rpl_semi_sync_master_no_tx观察)

3. 如果主备之间连接出现故障,主库是否会一直等待?

如果主备网络故障或者备库挂了,主库在事务提交后等待10秒(rpl_semi_sync_master_timeout的默认值)后,就会继续。这时,主库就会变回原来的异步状态。

4. 最后

且不论5.5是否稳定,现在的Semi synchronous Replication也还是很不完善的,希望能够继续健壮直至稳定。

转载于:https://www.cnblogs.com/rayan/p/10860748.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值