如何进行异构数据库同步

如何进行异构数据库同步,第1张

数据库同步有很多方法,这里不讨论了,我这里只针对异构数据库.那什么是异构数据库呢,我们先看下定义(引用)

异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:

计算机体系结构的异构

各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。

基础 *** 作系统的异构

各个数据库系统的基础 *** 作系统可以是Unix、Windows NT、 Linux等。

DMBS本身的异构

可以是同为关系型数据库系统的Oracle、 SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。

在转换的过程中,有时要想实现严格的等价转换是比较困难的。首先要确定两种模型中所存在的各种语法和语义上的冲突,这些冲突可能包括:

命名冲突:即源模型中的标识符可能是目的模型中的保留字,这时就需要重新命名。

格式冲突:同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。

结构冲突:如果两种数据库系统之间的数据定义模型不同,如分别为关系模型和层次模型,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。

异构数据库同步的解决方法主要有以下几种:

1.建立触发器记录表的变化情况,在源数据库建立增、删、改触发器,然后根据变化登记表进行处理.优点是充分结合业务进行处理,保持数据的一致性、完整性,实时性较强,对多个数据源合并有非常大的优势,我们现在也是采用这种方式来同步的。

2.日志:通过分析源数据库日志,来获得源数据库中的变化的数据。ORCLE 的 异步 CDC (Asynchronized CDC) 就是使用这种方式,但缺点是有一定延时.

openGauss对数据复制能力的支持情况为: 支持通过数据迁移工具定期向异构数据库(如Oracle等)进行数据同步,不具备实时 数据复制能力。不足以支撑与异构数据库间并网运行实时数据同步的诉求。

openGauss提供了逻辑解码功能,通过反解xlog的方式生成逻辑日志。目标数据库解 析逻辑日志以实时进行数据复制。具体如图所示:

逻辑复制降低了对目标数据库 的形态限制,支持异构数据库、同构异形数据库对数据的同步,支持目标库进行数据同步期间的数据可读写,数据同步时延低。

具体请参考社区官方文档《开发者指南》


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6638921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存