首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同数据库之间同步数据

问在不同数据库之间同步数据
EN

Stack Overflow用户
提问于 2013-02-19 19:55:20
回答 2查看 1.1K关注 0票数 2

我正在为以下问题寻找可能的解决方案。

首先,我所处的情况:

我有2个数据库,1个Oracle DB和1个MySQL DB。尽管它们有很多相似之处,但它们并不完全相同。Oracle和Oracle上都有很多表,但是MySQL表通常更广泛,包含更多的列。数据库的情况不能改变,所以我必须处理这个问题。

现在,我正在寻找以下内容:

我想将数据从Oracle同步到MySQL,反之亦然。这必须是实时的或尽可能接近实时的。因此,当在一个数据库中进行更改时,它们必须尽快同步到另一个数据库。

此外,不是每个表都必须同步,因此解决方案必须提供一种方法来选择哪些表必须同步,哪些表不需要同步。

因为数据库不是完全相同的,所以我认为复制不是一种选择。但是什么才是呢?我希望你们能帮助我找到一种方法来做这件事,或者是一个能做我需要的工具。也许你知道一些好的论文/文章,我可以用?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 22:58:32

我读了你的问题和答案。我曾经在Oracle、SQL、ETL和数据仓库方面工作过,下面是我的建议:

  1. 有一个现成的ETL工具是很好的。但是,如果您的应用程序足够大,需要一个定制的ETL工具,我建议您使用自制的ETL过程。

代码语言:javascript
复制
- If your transactional database is on Oracle, you can have triggers set up on the key tables that would further trigger an external procedure written in C, C++ or Java.
- The reason behind using an external procedure is to be able to communicate with both databases at a time - Oracle and MySQL.
- You can read more about Oracle External Procedures [here](http://docs.oracle.com/cd/A97630_01/appdev.920/a96590/adg11rtn.htm).

​

  1. 如果不是通过ExtProc,您可以使用Java或.Net开发一个单独的应用程序,该应用程序将从第一个数据库中提取数据,根据您的业务规则对其进行转换,并将其加载到您的仓库中。

在您选择的任何一种方法中,如果您实现自己的工具,而不是使用现成的工具,您将对ETL过程有更好的控制。

票数 0
EN

Stack Overflow用户

发布于 2013-03-13 22:42:03

谢谢你的评论。

我对ETL和EAI做了进一步的研究。我发现我正在寻找一个ETL工具。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14956878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档