我工作的大学使用Oracle作为数据库系统。目前,我们有一些在晚上运行的程序,将我们需要的内容下载到一些本地 Access 表中,以满足我们的测试需求。现在,访问权限变得越来越小,我们需要更大的东西。另外,夜间工作需要不断的维护才能继续工作(因为网络问题、表更改、糟糕的代码:)),我想消除它们,以便让我们有时间去做更重要的事情。

我最熟悉 MySQL,所以我设置了一个测试 MySQL 服务器。自动将所需表从 Oracle 复制到 MySQL 的最佳方法是什么?

编辑:我接受了这个答案。我不喜欢这个答案,但根据进一步的研究和缺乏提供的其他答案,它似乎是正确的。感谢大家思考我的问题并回答它。

有帮助吗?

解决方案

我不认为真的有什么可以做到这一点。如果您可以设置本地 Oracle 数据库,那么您很可能可以,因为 Oracle 有多种方法可以保持两个数据库“同步”,前提是它们都是 Oracle。

如果你必须使用mysql,那么你可能只需要编写一些东西来同步数据,这当然总是会遇到你当前访问“数据库”时遇到的相同问题。

您可以使用 HSODBC 和触发器进行设置,但是

  1. 我发现 HSODBC 非常消耗内存
  2. 这只会给你的数据库增加更多的负载,你说数据库在白天已经负载很重。

如果您要做的主要事情是想要您的 oracle 数据库的本地测试副本,您最好设置与本地版本的 oracle 同步,据我从许可证中可以看出,oracle 对于开发副本是免费的(我见过一些相反的帖子,但如果您发现是这种情况,您可以随时使用 Oracle XE 之类的东西)

其他提示

您能否复制 Oracle 表,然后将它们设置为 MS Access 中的链接表?这样,前端保持不变,而且您可以将所有内容保留在 Oracle 中(移动部件比导出和导入少)。

正如凯林所说,有很多免费工具。其中之一是 SQLWorkbench http://www.sql-workbench.net/, ,它适用于任何 JDBC 数据库,因此 MySQL 和 Oracle 应该可以工作。如果需要,它可以在 Oracle 中创建表,或者仅复制(更新的)数据。

如果你的数据库不是很复杂,有很多工具可以将数据从oracle迁移到mysql。

您可以使用开源工具(如 Kettle pentaho ETL 工具)或付费企业工具(如 DB Convert): https://dbconvert.com/oracle/mysql/

最后,您可以编写迁移数据的脚本或程序。

请查找与您的问题相关的链接:

https://dba.stackexchange.com/questions/150343/how-to-sync-a-mysql-db-with-a-oracle-db

从 Oracle 迁移到 MySQL

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top