iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么实现双活同步复制
  • 464
分享到

MySQL中怎么实现双活同步复制

2024-04-02 19:04:59 464人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关Mysql中怎么实现双活同步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。基于MySQL原生复制主主同步方案  这

这篇文章将为大家详细讲解有关Mysql中怎么实现双活同步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

基于MySQL原生复制主主同步方案 

MySQL中怎么实现双活同步复制

这是常见的方案,一般来说,中小型规模的时候,采用这种架构是最省事的。

两个节点可以采用简单的双主模式,并且使用专线连接,在master_A节点发生故障后,应用连接快速切换到master_B节点,反之也亦然。有几个需要注意的地方,脑裂的情况,两个节点写入相同数据而引发冲突,同时把两个节点的auto_increment_increment(自增步长)和auto_increment_offset(自增起始值)设成不同值。其目的是为了避免master节点意外宕机时,可能会有部分binlog未能及时复制到slave上被应用,从而会导致slave新写入数据的自增值和原先master上冲突了,因此一开始就使其错开;当然了,如果有合适的容错机制能解决主从自增ID冲突的话,也可以不这么做,使用更新的数据版本5.7+,可以利用多线程复制的方式可以很大程度降低复制延迟,同时,对复制延迟特别敏感的另一个备选方案,是semi-sync半同步复制,基本上无延迟,不过事务并发性能会有不小程度的损失,特别是在双向写的时候,需要综合评估再决定。

MySQL中怎么实现双活同步复制

基于Galera replication方案 

Galera是Codership提供的多主数据同步复制机制,可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可用及数据一致性,基于Galera的高可用方案主要有MariaDB Galera Cluster和Percona XtraDB Cluster(简称PXC)。

MySQL中怎么实现双活同步复制

MySQL中怎么实现双活同步复制

MySQL中怎么实现双活同步复制

目前PXC用的会比较多一些,数据严格一致性,尤其适合电商类应用,不过PXC也是有其局限性的,如果并发事务量很大的话,建议采用InfiniBand网络,降低网络延迟,因为PXC存在写扩大以及短板效应,并发效率会有较大损失,类似semi-sync半同步复制,Gelera实际只能用三个节点,网络抖动造成的性能和稳定性习惯性问题

基于Group Replication方案 

MySQL中怎么实现双活同步复制

通过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,在某个时间节点本身是单向的。

主从复制分成三步:

MySQL中怎么实现双活同步复制

master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);

slave将master的binary log events拷贝到它的中继日志(relay log);

slave重做中继日志中的事件,将改变反映它自己的数据。

canal原理相对比较简单:

MySQL中怎么实现双活同步复制

canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议

mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)

关于MySQL中怎么实现双活同步复制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么实现双活同步复制

本文链接: https://www.lsjlt.com/news/55997.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中怎么实现双活同步复制
    这篇文章将为大家详细讲解有关MySQL中怎么实现双活同步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。基于MySQL原生复制主主同步方案  这...
    99+
    2024-04-02
  • MySQL中怎么实现半同步复制
    MySQL中怎么实现半同步复制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。半同步复制:什么是半同步复制我们知道在默认情况下,...
    99+
    2024-04-02
  • 怎么实现MySQL中的半同步复制
    这篇文章给大家介绍怎么实现MySQL中的半同步复制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 关于MySQL的复制架构,大体有下面三种方式,异步,全同步复制,半同步复制。三种复制...
    99+
    2024-04-02
  • MySQL异步复制和半同步复制怎么实现
    这篇文章主要介绍“MySQL异步复制和半同步复制怎么实现”,在日常操作中,相信很多人在MySQL异步复制和半同步复制怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”My...
    99+
    2024-04-02
  • MYSQL中怎么实现单双向同步
    MYSQL中怎么实现单双向同步,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 Sever info: Master:192.168.1...
    99+
    2024-04-02
  • MySQL中怎么实现主从复制和半同步复制
    这篇文章将为大家详细讲解有关MySQL中怎么实现主从复制和半同步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、复制的介绍MySQL支持单向、异步复制...
    99+
    2024-04-02
  • Mysql中如何实现半同步复制
    本篇文章为大家展示了Mysql中如何实现半同步复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、环境准备:centos系统服务器2台、一台用户做Mysql主服务...
    99+
    2024-04-02
  • Mysql5.7中怎么实现半同步复制
    这篇文章将为大家详细讲解有关Mysql5.7中怎么实现半同步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。0.系统版本mysql> se...
    99+
    2024-04-02
  • mysql5.5中怎么实现半同步复制
    本篇文章为大家展示了mysql5.5中怎么实现半同步复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。master:192.168.70.101slave:192....
    99+
    2024-04-02
  • MySQL中怎么实现异步复制
    这篇文章将为大家详细讲解有关MySQL中怎么实现异步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、MYSQL复制架构衍生史在2000年,MySQL ...
    99+
    2024-04-02
  • MySQL中怎么实现主从同步机制
    MySQL中怎么实现主从同步机制,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最直观的表现为:mysql> show ...
    99+
    2024-04-02
  • mysql数据库中怎么实现双向同步热备
    本篇文章为大家展示了mysql数据库中怎么实现双向同步热备,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 环境: Master server: 10.224.1...
    99+
    2024-04-02
  • MySQL半同步复制中after_rollback怎么用
    这篇文章给大家分享的是有关MySQL半同步复制中after_rollback怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。调用流程 ha_rollback_low->...
    99+
    2024-04-02
  • mysql中怎么配置半同步复制
    这篇文章给大家介绍mysql中怎么配置半同步复制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.准备主备库配置文件,创建复制用户主库server_id = 1 备库  se...
    99+
    2024-04-02
  • mysql中怎么设置半同步复制
    mysql中怎么设置半同步复制,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在主、从上安装和开启半同步插件mysql> install ...
    99+
    2024-04-02
  • 怎么在MySQL中配置半同步复制
    今天就跟大家聊聊有关怎么在MySQL中配置半同步复制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL安装通过APT的方式安装,官方指导文档地...
    99+
    2024-04-02
  • Oracle中怎么实现数据库复制和同步
    在Oracle中,可以使用以下方法实现数据库复制和同步: 使用Oracle Data Guard:Data Guard是Orac...
    99+
    2024-04-09
    Oracle 数据库
  • mysql同步复制和异步复制有什么区别
    这篇文章主要介绍mysql同步复制和异步复制有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!区别:异步复制是Master将事件写入binlog,提交事务,自身并不知道slav...
    99+
    2024-04-02
  • mssql数据同步怎么实现数据复制
    本篇文章为大家展示了mssql数据同步怎么实现数据复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 一 配置发布服务器 在发布服务器...
    99+
    2024-04-02
  • mysql中怎么实现同步备份
    本篇文章为大家展示了mysql中怎么实现同步备份,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  不同服务器上mysql如何实现同步备份  1.服务器状态:  服务...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作