您的位置:首页 > 博客中心 > 数据库 >

InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能

时间:2022-03-13 23:44

Virtual Sync Replication的实现机制

有用户可能会对VSR的性能抱有担心,的确网络的延迟是无法避免的,这决定了VSR的性能会比异步的复制要差。但是VSR的性能会比semi-sync复制的性能要好很多。其实这是非常容易理解的,因为步骤3,4交换顺序后,可以极大的提高组提交的比例,从而减少fysnc的次数,提高性能,这就是前面说的,通过减少fsync来减缓网络延迟带来的开销。也有类似VSR的实现机制(FB称之为semi synchronous replication),他们也证实了VSR的性能要比semi-sync来得好。

HA Suite(MySQL双机高可用套件)

仅仅通过VSR机制就能保证主从数据的完全一致性吗?很可惜,还是不能。VSR还是与semi-sync一样,存在故障切换后,原master服务器的数据比slave多的情况。这是因为上述的步骤2已经写二进制日志了,master故障恢复后依然会提交该事务,但是这部分二进制日志可能会没有传送到slave。但是VSR和semi-sync不同的是,由于事务还在提交过程中,数据对其他事务不可见,这意味着,这部分已经写入到二进制日志的事务可以回滚。这部分的操作,最早通过外部脚本来控制,后来InnoSQL决定将这部分的工作交由数据库自己来完成,最后以一个高可用的套件形式来展现给用户,那么这部分的操作对用户来说就都是透明的了。

要配置HA Suite是及其简单的,假设复制环境的主服务器为192.168.1.2,从服务器为192.168.1.3,那么将其配置为双主的形式,启用semi-sync replication的插件,然后进行类似如下的配置:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 [mysqld] binlog = mysqld-bin#开启二进制日志,搭建双主环境 sync_binlog = 1 #保证crash safe innodb_flush_log_trx_commit = 1 #保证crash safe rpl_semi_sync_master_timeout = 100000000 #不要超时,防止切异步,保证主从数据的完全一致性 rpl_semi_sync_master_commit_after_ack = 1 #启用VSR功能 enable_table_relay_info = 1 #开启crash safe功能 relay_log_recovery = 1 #开启crash safe功能 slave_parallel_threads=16 #并行复制的线程数 ha_partner_host = 192.168.1.3 #配置partner服务器(另一台配置为192.168.1.2) ha_partner_user = xxx #连接partner服务器的数据库用户,用户直接使用复制的用户即可 ha_partner_password = xxx #连接partner服务器的数据库用户密码 ha_partner_port = 3306 read_only = 1 #可选配置

可以看到对于VSR来说最为重要的就是网络,对于网络的要求极高,当然这也非常容易理解,这对于Oracle DataGurad、Microsoft SQL Server Mirroring来说也是一样的要求。HA Suite配置之前介绍的功能,又能极大的提高从机的性能,同时又能缩短故障恢复的时间。

关于InnoSQL

InnoSQL是国产MySQL版本,并且遵守GPL v2协议,对开源所有修改的代码。InnoSQL针对互联网与传统金融企业的数据库应用进行性能优化与数据保障。

InnoSQL技术讨论QQ群:166583560 InnoSQL官方网站: InnoSQL社区论坛: InnoSQL公众账号:InsideMySQL InnoSQL微薄:@InnoSQL

参考文献

热门排行

今日推荐

热门手游