数据库同步有很多方法,这里不讨论了,我这里只针对异构数据库.那什么是异构数据库呢,我们先看下定义(引用)
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:
计算机体系结构的异构
各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。
基础操作系统的异构
各个数据库系统的基础操作系统可以是Unix、Windows NT、 Linux等。
DMBS本身的异构
可以是同为关系型数据库系统的Oracle、 SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。
在转换的过程中,有时要想实现严格的等价转换是比较困难的。首先要确定两种模型中所存在的各种语法和语义上的冲突,这些冲突可能包括:
命名冲突:即源模型中的标识符可能是目的模型中的保留字,这时就需要重新命名。
格式冲突:同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。
结构冲突:如果两种数据库系统之间的数据定义模型不同,如分别为关系模型和层次模型,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。
异构数据库同步的解决方法主要有以下几种:
1.建立触发器记录表的变化情况,在源数据库建立增、删、改触发器,然后根据变化登记表进行处理.优点是充分结合业务进行处理,保持数据的一致性、完整性,实时性较强,对多个数据源合并有非常大的优势,我们现在也是采用这种方式来同步的。
2.日志:通过分析源数据库日志,来获得源数据库中的变化的数据。ORCLE 的 异步 CDC (Asynchronized CDC) 就是使用这种方式,但缺点是有一定延时.
3.可以使用中间件(PlusWell Data Replication 软件)的方式实现:http://www.cnblogs.com/seed_lee/archive/2011/02/13/1953068.html
引自: http://hi.baidu.com/fly_ch/blog/item/361dbbc7ba6b18d9d000604a.html