2

I'm looking for a possible solution for the following problem.

First the situation I'm at:
I've 2 databases, 1 Oracle DB and 1 MySQL DB. Although they have a lot of similarities they are not identical. A lot of tables are available on both the Oracle DB and the MySQL DB but the Oracle tables are often more extensive and contain more columns. The situation with the databases can't be changed, so I've to deal with that.

Now I'm looking for the following:
I want to synchronise data from Oracle to MySQL and vice versa. This has to be done real time or as close to real time as possible. So when changes are made at one DB they have to be synced to the other DB as quickly as possible.

Also not every table has to be in sync, so the solution must offer a way of selecting which tables have to be synced and which not.

Because the databases are not identical replication isn't an option I think. But what is? I hope you guys can help me with finding a way of doing this or a tool which does exactly what I need. Maybe you know some good papers/articles I can use?

Thanks!

4

2 回答 2

1

感谢您的评论。

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

于 2013-03-13T14:42:03.280 回答
0

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

  1. 拥有现成的 ETL 工具是件好事。但是,如果您的应用程序大到足以让您需要量身定制的 ETL 工具,我建议您使用自制的 ETL 流程。

    • 如果您的事务数据库在 Oracle 上,您可以在关键表上设置触发器,以进一步触发用 C、C++ 或 Java 编写的外部过程。
    • 使用外部过程背后的原因是能够同时与两个数据库(Oracle 和 MySQL)进行通信。
    • 您可以在此处阅读有关 Oracle 外部过程的更多信息。
  2. 如果不通过 ExtProc,您可以使用 Java 或 .Net 开发一个单独的应用程序,该应用程序将从第一个数据库中提取数据,根据您的业务规则对其进行转换并将其加载到您的仓库中。

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

于 2013-03-13T14:58:32.080 回答