作者:贺春阳 ,出处:mysqlpub.com ,转载请注明。
目 录
半同步复制介绍(Semi-sync Repication)... 2 半同步复制安装配置... 3 参数说明... 5 功能测试... 7 1 如何验证半同步复制是否正常工作?... 7 2 半同步复制与异步复制的切换... 10 2.1 场景一、stop slave; 10 2.2 场景二、模拟同步报错... 12 2.3 场景三、commit提交等待... 14 性能测试... 15 1 场景一、半同步复制和异步复制的性能对比... 15 2 场景二、模拟SLAVE宕机半同步复制切换为异步复制... 17 总结... 17
默认情况下,MySQL5.1/5.5 的复制功能是异步的,这意味着当谈到数据一致性时,主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新的数据写入它的二进制日志(Binlog)文件中后,无需等待验证更新数据是否已经复制到至少一台拓扑从服务器中,就可以自由处理其它进入的事务处理请求。虽然快,但这也同时带来了很高的风险,如果在主服务器或从服务器端发生故障,会造成主服务器/从服务器数据的不一致,甚至在恢复时造成数据丢失。
MySQL5.5 引入了一种半同步复制功能,该功能可以确保主服务器和访问链中至少一台从服务器之间的数据一致性和冗余。在这种配置结构中,一台主服务器和其许多从服务器都进行了配置,这样在复制拓扑中,至少有一台从服务器在父主服务器进行事务处理前,必须确认更新已经收到并写入了其中继日志(Relay Log)。当出现超时,源主服务器必须暂时切换到异步复制模式重新复制,直到至少有一台设置为半同步复制模式的从服务器及时收到信息。 |