开发者社区> 问答> 正文

网络同步数据库多终端操作不冲突?特别是地理数据库可实 现网络同步操作协同编辑?

网络同步数据库多终端操作不冲突?特别是地理数据库可实 现网络同步操作协同编辑?

展开
收起
游客y7f4tqjnapsic 2021-12-21 13:50:13 573 0
1 条回答
写回答
取消 提交回答
  • 所谓地理数据库,我觉得提问的朋友指的是跨城或者跨 DC、跨可用区 域的实例部署。要同时在可用区域跨域、跨城上面同时对实例进行操作,但它有两个 实例、两个区域这种。这个叫做异地多活,这确实是非常有挑战的一件事。举个例 子来讲,通常不光是改数据还有可能修改表里面的 Schema。比如说我这个表,有 两个 DC 都同时它们在两个不同的城市。那么需要在两地都支持我的应用,首先能 够动态的增加和删除数据我们的数据;第二我甚至可以允许两边的应用同时修改我 的 Schema 做 online DDL 这种事情。如果不做任何的数据库系统或应用改造的话 那一定会出现数据冲突的问题。在阿里我们用这种情况用 DTS (data transmition service) 至少可以做到异地灾备,一边可以编解一边可以做到实时的数据同步,比一 般来说,先解析 binlog,然后把 binlog 解析过来把数据同步到另外里面的 DC 数据 中心里面去。但这还没有做到多活,没有做到另外一个数据中心同步过去的数据和数 据库实时修改然后实现双向同步。这是非常有挑战的一件事,光用 DTS 那种数据同 步工具是做不到的,同时还需要应用对它的整个所有的应用,不论是对它 DBA 也好 还是用户层的应用所有的这些跟数据库相关的操作改动一定要有一个统一的收口在这 里一层。在阿里内部叫 DMS (data management service) 也是我们云上的一个产 品,所有的东西所有的操作都是通过它去做收敛,比如 online DDL 这种操作,可以 确保自身这些变更能够做到同步而且两边没有冲突。这种方案加上 DTS,再加上数 据库内核本身,像今天分享时讲到的不管是云原生数据库、分布式数据库,它们现在 也是大量的使用分布式的数据同步协议像 Paxos、raft 那它至少可以做在一个可容 区里面三节点实时同步,再对跨区域实行在 DTS 上面 DMS 实行收口和所有的变更 , 以上为基本的逻辑和思路。

    资源来源于《给ITer的技术前沿课》

    https://developer.aliyun.com/topic/download?id=136

    2021-12-23 14:52:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载