如何对Oracle数据库做部分数据的镜像同步

如何对Oracle数据库做部分数据的镜像同步,第1张

方法一:通过物化视图来实现 1 创建dblink 2 创建物化视图 方法二:通过dataguard来实现 全库同步,并且备库不能进行 *** 作 方法三:通过godengate来实现 1 两个数据同时安装godengate软件 2 配置参数

 两个一样的oracle ,定期同步,说白了就是主备用数据库数据同步的问题;

如果数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,

第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;

第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;

第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。

以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。

有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。

1在Oracle中建立对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。

这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:

SELECT

FROM msdbdboMSdatatype_mappings

SELECT

FROM msdbdbosysdatatypemappings

来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。

SQLServer和Oracle的对应

2建立链接服务器。我们将Oracle系统作为SQLServer的链接服务器加入到SQLServer中。

具体做法参见我以前的文章>

1、物化视图

2、dataguard

3、rman增量导入

4、找开发商取出每天的增量数据导入备库。

5、每天全库的导出导入

当然了,最后一种方法完全不用考虑(虽然 *** 作过程简单,但数据量大的话相当耗时,而且实时性就没办法咯),(方案四是要收费滴)。o(∩_∩)o

如果你的备库只需要进行查询 *** 作,那么以上方案均可考虑(注意用方案二的话数据库版本只能是oracle11以上,这样备库才能open);如果你的备库还需要进行修改等的其他 *** 作的话那么建议采用方案一或方案四。

以上方案实时性最好的是方案二其次是方案一。其它几个方案实时性较差。

以上就是关于如何对Oracle数据库做部分数据的镜像同步全部的内容,包括:如何对Oracle数据库做部分数据的镜像同步、为什么oracle的数据库一直在同步、如何同步ORACLE和sqlserver的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9751130.html

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

发表评论

登录后才能评论

评论列表(0条)

保存