当前位置:主页 > 查看内容

浅谈数据库同步

发布时间:2021-05-05 00:00| 位朋友查看

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

浅谈数据库同步

【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】


本文转载自网络,原文链接:https://www.51cto.com/
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐