|
|
51CTO旗下网站
|
|
移动端

浅谈数据库同步

顾名思义,数据库同步(Database synchronization)是指在两个或多个数据库之间建立数据的一致性,并且能够自动相互复制数据记录的更改。随着时间的推移和信息量的增多,此类数据的协调工作应当被持续执行。

作者:陈峻译来源:51CTO|2020-08-31 07:00

浅谈数据库同步

【51CTO.com快译】顾名思义,数据库同步(Database synchronization)是指在两个或多个数据库之间建立数据的一致性,并且能够自动相互复制数据记录的更改。随着时间的推移和信息量的增多,此类数据的协调工作应当被持续执行。

从实现机制上说,最简单的操作方式莫过于将数据从源数据库(主数据库)推送到目标数据库(从数据库)。当然,值得注意的是:同步必须基于主键(Primary Key)的约束。同时数据库的结构应当包含有主键或唯一(主)索引,而绝不是复合型(composite)的。

通常,我们会在两到多个数据库之间持续如下类型的同步:

  • 插入同步(Insert Synchronization)
  • 更新同步(Update Synchronization)
  • 删除同步(Drop Synchronization)
  • 混合同步(Mixed Synchronization)

数据库插入同步

如果目标表中并不具有与源表相同主键值的适当记录,那么源表需要将新的记录自动传输到目标处。也就是说:在数据库完成同步过程后,那些缺少的记录将被插入到目标表的对应位置。

下图展示了数据库插入同步的具体过程:

数据库更新同步

当源数据库发生更改时,我们必须确保在目标数据库中执行适当的更改。显然,在同步之前,我们需要先比较两个数据库的记录值,然后在目标表处替换需要更改的记录,并在两个表之间建立合适的标识,以标记更新数据库的操作已完成。

下图展示了数据库更新同步的具体过程:

数据库删除同步

如果某些数据记录已经从源数据库中被删除,那么其对应的记录也需要及时从目标数据库中被移除。也就是说,通过检查“删除同步选项(Drop-sync option)”,那些“滞留”在目标数据库中的多余记录会被及时删除掉,以保障源数据库与目标数据库的存储一致性。

下图展示了数据库删除同步的具体过程:

数据库混合同步

其实在实际应用中,上述三种同步操作从来不是孤立地存在着。为了保持两个数据库的相关性,我们必须在同一套操作中,对目标数据库的对应行/列“打出”添加、更新、以及删除的“组合拳”。

下图展示了数据库混合同步的具体过程:

在《跨数据库转换和同步软件》(请参见-- https://dbconvert.com/)一文中,作者详细介绍了如何在SQL Server、MySQL、Oracle、以及PostgreSQL等时下流行的本地数据库之间,迁移与同步各类数据与记录的操作。当然,此类方法也适用于AWS RDS/Aurora、Microsoft Azure SQL、以及Google Cloud SQL等云端数据库平台。

原标题:What Is Database Synchronization?,作者: Dmitry Narizhnykh

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 数据库是咋工作的之一
  2. 原来Python自带了数据库,用起来真方便!
  3. 数据库管理,不能没有这5个MySQL GUI工具
  4. Oracle大势已去,国产数据库的春天来了
  5. 一个数据库SQL查询的数次轮回
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

数据中心和VPDN网络建设案例

数据中心和VPDN网络建设案例

漫画+案例
共20章 | 捷哥CCIE

154人订阅学习

搭建数据中心实验Lab

搭建数据中心实验Lab

实验平台Datacenter
共5章 | ITGO(老曾)

94人订阅学习

大数据安全运维实战

大数据安全运维实战

CDH+Ambari
共20章 | 大数据陈浩

91人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微