0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用NineData实现MySQL异地多活场景

jf_37204399 来源:jf_37204399 作者:jf_37204399 2026-04-14 14:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作为现代化的互联网企业 ,最怕的是什么 ?是意外!由各种意外导致的数据库问题,磁盘问题、网络问题、人员误操作问题等等,这些问题都可能导致数据不可用或者丢失,造成重大损失。

因此,很少会有企业采用「单机」数据库架构,尽管这个架构简单明了,却经不起任何的意外,所以大部分企业都会采用更加安全可靠的「主从高可用」架构。这种架构通常具备一个主库(Master)和一个或多个从库(Slave),所有从库都实时保存了主库最新数据的副本,当主库出现问题无法访问时,保证从库可以迅速接管。

但实际上,你的「主从高可用」架构通常是部署在一个机房的多台服务器中,在遭遇火灾、地震、线缆被意外挖断等人为不可控的灾害时,主从高可用架构将形同虚设,你的数据照样会被一锅端。这就是我今天想聊的话题,单一机房内的高可用并不能算真正意义上的高可用,而「跨机房容灾」甚至「异地容灾」才算。

异地容灾?异地多活?

顾名思义,异地容灾就是在「主从高可用」架构的基础上,把服务器分别部署在不同地域的机房中,当中心节点地域的机房发生灾害,其他单元节点所处地域的服务器可以迅速接管业务,确保业务的可用性,但是这又会带来新的问题,单元节点平时只是作为「灾备实例」存在,谁能确保在所有中心节点的流量切换到单元节点后不出任何问题呢?因此,这个方案是存在风险的。

异地多活则是异地容灾的一种升级方案,单元节点如果仅仅是作为灾备实例,那也太浪费了,不如和中心节点一起,同步处理业务流量,这样一来,不仅可以提高资源利用率,也能保证在任意一个节点失效时,其他节点可以平稳接管流量。要做到这一点,我们就要解决各节点之间的数据一致性问题。

wKgZPGnd5SaAG1TdAAD4D1cruSI30.jpeg

上图就是一个异地多活的解决方案,其核心是在所有节点间建立实时的数据同步机制,以确保各个节点的数据一致性。当中心节点发生数据变更时,这些变更会被实时同步到所有单元节点,反之亦然,形成了一个双向同步的复制链路,确保所有节点中的数据保持实时一致。

实现这个过程是非常复杂的,但是通过 NineData 就可以轻松做到。

什么是 NineData?

NineData 是玖章算术公司自主研发的云原生智能数据管理平台,是一个纯国产的软件。它提供的数据复制功能专门用于数据源之间的数据迁移与同步,针对本文的双向数据实时同步的需求,也提供了非常强大的支持。

这里我们以 MySQL 为例,假设有 A、B、C 三个数据源,以数据源 A 为中心节点,分别创建 A 和 B、A 和 C 之间的双向复制任务,实现三个数据源的数据实时同步。

步骤一:录入所有节点的 MySQL 数据库并添加多活标记

1. 登录 NineData 控制台,单击数据源管理>数据源,然后在页面中单击创建数据源,选择需要录入的数据源。

wKgZO2nd5SeAQba9AANYnbNbqAE74.jpeg

2. 根据页面提示进行配置,然后单击创建数据源完成创建。

wKgZPGnd5SeACYg9AANL6-UvG-Y11.jpeg

3. 单击数据源 ID 进入数据源详情页面,单击展开,找到多活标记,配置多活标记名称。该步骤所有参与复制的数据源都需要执行,以防止发生数据循环复制。

wKgZO2nd5SiASftMAAQBjHFlI8o94.jpeg

步骤二:创建数据源 A、B、C 之间的双向复制任务

1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击创建复制

wKgZPGnd5SmAZmsNAAMGAUJdUTI42.jpeg

2. 根据页面提示配置复制任务,源数据源处选择数据源 A,目标数据源处选择数据源 B,然后在复制方式处选择双向复制

wKgZO2nd5SmAROB6AAOgRkleqiQ22.jpeg

3. 配置完成后启动任务,然后再次创建一个新的复制任务,源数据源处依然选择数据源 A,目标数据源处选择数据源 C,然后同样在复制方式处选择双向复制

wKgZPGnd5SmAGRkXAAO5-lHZpgQ00.jpeg

4. 根据页面提示完成配置后,在数据复制的任务列表中可以看到多了 2 条双向复制任务,当正反向任务的延迟为 0 的时候,代表数据源 A、B、C 之间的数据是一致的。

wKgZO2nd5SqAeFnEAAOd6CKSdW463.jpeg

最后

本方案作为示例展示了一中心两单元的同步架构,事实上,这个解决方案可以支持无限多个单元节点的实时同步,只需重复添加数据源 A 到数据源 N 即可实现。

至此,你的异地多活架构已经全部配置完成,所有节点都可以提供业务读写,得益于实时的数据同步机制,任何一个节点发生故障时,其他节点均能够无缝接管中心节点的流量,由于所有单元节点本身就在处理业务,因此无需担心单元节点能否胜任,保证了系统的高可用性和持续性。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    4078

    浏览量

    68524
  • MySQL
    +关注

    关注

    1

    文章

    928

    浏览量

    29739
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NineData 5.0 产品发布和生态伙伴大会,圆满举办!

    4 月 16 日,NineData 5.0 产品发布会和生态伙伴大会在杭州成功举办。NineData 5.0 围绕数据复制 A2A 架构、 AI 原生数据库 DevOps 、ChatDBA 智能运维
    的头像 发表于 04-17 14:47 75次阅读
    <b class='flag-5'>NineData</b> 5.0 产品发布和生态伙伴大会,圆满举办!

    MySQL 删库后怎么恢复?binlog2sql 之外,NineData 还能做什么

    的完整链路。本文从“误删数据怎么恢复”切入,先说明 binlog2sql 的适用场景和技术边界,再结合 NineData 的 Track Rollback 做事后定位和 DML 回滚 这也是它
    的头像 发表于 04-15 11:49 39次阅读
    <b class='flag-5'>MySQL</b> 删库后怎么恢复?binlog2sql 之外,<b class='flag-5'>NineData</b> 还能做什么

    MySQL 到 SelectDB 实时同步:传统 ETL 与 NineData 的能力侧重

    一条成熟的 MySQL -> SelectDB 链路,不只是“数据复制问题”,也是“目标端建模问题”。NineData 并不会替代目标端建模,它把团队的注意力从“同步链路本身是否可靠”逐步转移到“SelectDB 目标表该怎么设计更合理”上。对项目推进来说,这也是一种很实
    的头像 发表于 03-31 15:53 629次阅读
    <b class='flag-5'>MySQL</b> 到 SelectDB 实时同步:传统 ETL 与 <b class='flag-5'>NineData</b> 的能力侧重

    如何实现异地PLC的远程编程调试和上下载程序

    在工业自动化场景中,设备遍布全国乃至全球,传统异地PLC维护需工程师频繁出差,成本高、效率低、响应慢。物通博联(WideIOT)工业智能网关凭借“边缘接入+云端穿透+安全运维”的核心能力,可快速搭建
    的头像 发表于 03-31 14:15 208次阅读
    如何<b class='flag-5'>实现</b>对<b class='flag-5'>异地</b>PLC的远程编程调试和上下载程序

    从业务库到实时分析库,NineData 构建 MySQL到SelectDB 同步链路

    MySQL 到 SelectDB,难点从来不是“把数据搬过去”,而是把这件事做成一条真正可靠的生产链路。 NineData 在这个场景里的价值,不只是提供了一条复制通道,而是把任务创建、实时复制
    的头像 发表于 03-31 12:54 519次阅读
    从业务库到实时分析库,<b class='flag-5'>NineData</b> 构建 <b class='flag-5'>MySQL</b>到SelectDB 同步链路

    从个人开发到企业专属集群,NineData 如何支持类数据管理场景

    最近看了一圈数据管理相关产品,一个比较明显的感受是: 很多工具都能解决一个点,但很少有产品能把“从开发到生产、从个人到企业”的整条链路做完整。 而 NineData 比较有意思的一点,正是它不只是做
    的头像 发表于 03-25 15:41 201次阅读
    从个人开发到企业专属集群,<b class='flag-5'>NineData</b> 如何支持<b class='flag-5'>多</b>类数据管理<b class='flag-5'>场景</b>?

    Flyway、Liquibase难以覆盖 NineData环境发版流程编排能力?

    Flyway、Liquibase 擅长数据库脚本迁移执行,但缺乏环境发版流程管控能力。NineData 聚焦补齐短板,原生支持环境编排、审批、规范校验与版本回滚,打造统一发版工作台,不替代原有工具,而是完善全流程管控,适配企
    的头像 发表于 03-23 15:32 635次阅读
    Flyway、Liquibase难以覆盖 <b class='flag-5'>NineData</b> 的<b class='flag-5'>多</b>环境发版流程编排能力?

    哪些人更适合用 NineData 社区版的慢 SQL 功能:DBA、后端、SRE,还是技术负责人?

    本文只讨论在 MySQL 慢 SQL 场景下的使用边界。NineData 社区版支持离线部署、Docker 单机部署,数据库 DevOps 提供 10 个数据源可用额度,核心功能与专业版保持一致。如果团队要的是分布式集群、跨区域
    的头像 发表于 03-19 23:15 370次阅读

    基于 NineData环境表结构变更流程编排实践

    NineData 的流程编排,并非简单的 SQL执行工具,而是专为环境结构发布设计的标准化体系:以开发环境为基准数据源,固定变更源头与执行顺序,支持开发→测试→预发→生产自定义流程节点,仅允许流转
    的头像 发表于 03-19 17:24 1173次阅读
    基于 <b class='flag-5'>NineData</b> 的<b class='flag-5'>多</b>环境表结构变更流程编排实践

    NineData 新增支持 MySQL 到 openGauss PostgreSQL 数据复制链路

    MySQL 到 openGauss PostgreSQL 兼容版的迁移,真正难的从来不是“把数据搬过去”,而是如何在业务不停、数据持续变化、结果需要验证、问题需要及时发现的前提下,把整个迁移过程稳稳
    的头像 发表于 03-19 11:44 191次阅读
    <b class='flag-5'>NineData</b> 新增支持 <b class='flag-5'>MySQL</b> 到 openGauss PostgreSQL 数据复制链路

    避免选择不当的数据变更审批工具!NineData实用技术指南

    结合我多年研发+DBA运维经验,实测多款主流工具后,发现NineData是综合能力较强的工具。本文将从研发/DBA真实痛点出发,拆解选型避坑要点,通过工具实测对比,详解NineData如何适配企业级场景,帮你有效避坑,直接选对不
    的头像 发表于 03-18 17:52 1670次阅读
    避免选择不当的数据变更审批工具!<b class='flag-5'>NineData</b>实用技术指南

    NineData 社区版的慢SQL分析,比查看日志+看EXPLAIN适合中小团队

    本文探讨 NineData 社区版在 MySQL 慢 SQL 场景对中小团队的适用性。与 “查看日志 + 看 EXPLAIN” 传统方式不同,它将慢 SQL 按模板聚合,能从大盘、模板、诊断等多维
    的头像 发表于 03-17 14:07 107次阅读
    <b class='flag-5'>NineData</b> 社区版的慢SQL分析,比查看日志+看EXPLAIN适合中小团队

    MySQL 慢 SQL 排查这件事,NineData 社区VS DBeaver/ Navicat 技术分析

    DBeaver Community 和 Navicat Premium Lite 都是很有价值的客户端工具,在单条 SQL 的查询和验证上,依然是 DBA 最顺手的入口。 但 NineData
    的头像 发表于 03-17 11:53 115次阅读
    <b class='flag-5'>MySQL</b> 慢 SQL 排查这件事,<b class='flag-5'>NineData</b> 社区VS DBeaver/ Navicat 技术分析

    信而泰GPS异地测试解决方案:跨越空间的通信测试

    延时测试的绝对精度。 应用场景:多行业覆盖与典型用例 1. 金融行业关键场景 : 在金融行业,信而泰GPS异地测试解决方案助力数据中心容
    发表于 01-07 11:31

    工业智能网关实现异地PLC远程调试编程上下载

    实现PLC远程调试及程序上传下载,广泛应用于场景,高效解决PLC异地运维问题。PLC远程调试模块ZP3000远程控制网关适配性极强。在分散式厂区,如跨市、跨省的生
    的头像 发表于 09-19 16:23 1825次阅读
    工业智能网关<b class='flag-5'>实现</b><b class='flag-5'>异地</b>PLC远程调试编程上下载