同城双活⽅案mysql_MySQL双活同步复制四种⽅案
对于数据实时同步,其核⼼是需要基于⽇志来实现,是可以实现准实时的数据同步,基于⽇志实现不会要求数据库本⾝在设计和实现中带来任何额外的约束。
卫浴洁具十大品牌基于MySQL原⽣复制主主同步⽅案
这是常见的⽅案,⼀般来说,中⼩型规模的时候,采⽤这种架构是最省事的。
两个节点可以采⽤简单的双主模式,并且使⽤专线连接,在master_A节点发⽣故障后,应⽤连接快速切换到master_B节点,反之也亦然。有⼏个需要注意的地⽅,脑裂的情况,两个节点写⼊相同数据⽽引发冲突,同时把两个节点的auto_increment_increment(⾃增步长)和auto_increment_offset(⾃增起始值)设成不同值。其⽬的是为了避免master节点意外宕机时,可能会有部分binlog未能及时复制到slave上被应
⽤,从⽽会导致slave新写⼊数据的⾃增值和原先master上冲突了,因此⼀开始就使其错开;当然了,如果有合适的容错机制能解决主从⾃增ID冲突的话,也可以不这么做,使⽤更新的数据版本5.7+,可以利⽤多线程复制的⽅式可以很⼤程度降低复制延迟,同时,对复制延迟特别敏感的另⼀个备选⽅案,是semi-sync半同步复制,基本上⽆延迟,不过事务并发性能会有不⼩程度的损失,特别是在双向写的时候,需要综合评估再决定。
基于Galera replication⽅案
Galera是Codership提供的多主数据同步复制机制,可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务⾼可⽤及数据⼀致性,基于Galera的⾼可⽤⽅案主要有MariaDB Galera Cluster和Percona XtraDB Cluster(简称PXC)。
乘号符号⽬前PXC⽤的会⽐较多⼀些,数据严格⼀致性,尤其适合电商类应⽤,不过PXC也是有其局限性的,如果并发事务量很⼤的话,建议采⽤InfiniBand⽹络,降低⽹络延迟,因为PXC存在写扩⼤以及短板效应,并发效率会有较⼤损失,类似semi-sync半同步复制,Gelera实际只能⽤三个节点,⽹络抖动造成的性能和稳定性习惯性问题
基于Group Replication⽅案
通过Paxos协议提供数据库集节点数据强⼀致保证,MGR准确来说是MySQL官⽅推出的⾼可⽤解决⽅案,基于原⽣复制技术,并以插件的⽅式提供,并且集间所有节点可写⼊,解决了单个集的写⼊性能,所有节点都能读写,解决⽹络分区导致的脑裂问题,提升复制数据的可靠性,不过现实还是有些残酷,⽬前尝鲜的并不是很多,同时仅⽀持InnoDB表,并且每张表⼀定要有⼀个主键,⽤于做write set的冲突检测,必须打开GTID特性,⼆进制⽇志格式必须设置为ROW,⽤于选主与write set
COMMIT可能会导致失败,类似于快照事务隔离级别的失败场景,⽬前⼀个MGR集最多⽀持9个节点,不⽀持外键于save point特性,⽆法做全局间的约束检测与部分部分回滚,⼆进制⽇志不⽀持binlog event checksum
招行信用卡年费基于canal⽅案
对于数据库的实时同步,阿⾥巴巴专门有⼀个开源项⽬,即otter来实现分布式数据库的同步复制,其核⼼思想仍然是通过获取数据库的增量数据⽇志,来进⾏准实时的同步复制。因此otter本⾝⼜依赖于另外⼀个开源项⽬即canal,该项⽬重点则是获取增量数据库同步⽇志信息。
剑灵捏脸数据怎么导入当前otter的重点是实现mysql间的数据库同步复制,基本即利⽤的类似技术来实现两个mysql数据库间的双向同步数据库复制。要注意这个双向本⾝指既可以A->B,也可以从B->A,在某个时间节点本⾝是单向的。
主从复制分成三步:
苹果ios14充电提示音master将改变记录到⼆进制⽇志(binary log)中(这些记录叫做⼆进制⽇志事件,binary log events,可以通过show binlog events进⾏查看);
slave将master的binary log events拷贝到它的中继⽇志(relay log);
slave重做中继⽇志中的事件,将改变反映它⾃⼰的数据。
canal原理相对⽐较简单:
canal模拟mysql slave的交互协议,伪装⾃⼰为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
旧中国第一次正式参加奥运会是什么时候canal解析binary log对象(原始为byte流)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论