【问题标题】:Import data to mysql from oracle [duplicate]从oracle将数据导入mysql [重复]
【发布时间】:2014-04-08 20:17:03
【问题描述】:

我有 2 个数据库,第一个是 Mysql 数据库,它用于网站。第二个是 Oracle 数据库,它有我想在网站上显示的数据,并且数据必须是新鲜的,我的意思是,我需要每 30 分钟执行一个进程,将数据从 oracle db 迁移到 Mysql。

因为我说的是每 30 分钟迁移 60000 行,所以我认为最好的方法是(考虑性能):

insert into mysql_db.table.field1, mysql_db.table.field2, mysql_db.table.field3 select oracle_db.table.field1, oracle_db.table.field2, oracle_db.table.field3 from oracle_db.table

Oracle db 在 Windows 上,Mysql 在 Linux (Ubuntu) 上。

这可能吗?如何?否则,请给我一个不同的方法。

【问题讨论】:

  • 我们可以认为有什么东西阻止您通过 PHP 直接从 Oracle 获取数据吗?
  • 直接查询Oracle DB有什么问题?更好的是,为什么要使用 2 个数据库?
  • 好吧,oracle db包含敏感数据,网站是新的并且是在RoR框架上编写的,想法是不要接触网站代码。并且不要直接从网站连接到 oracle db(安全问题导致我不知道 oracle db 是如何管理的)

标签: mysql database oracle


【解决方案1】:

拥有 MySQL 数据库的 ODBC 驱动程序,您可以尝试dbForge Studio for Oracle 中的数据导出工具(支持命令行)。

【讨论】:

    【解决方案2】:

    您也可以使用GoldenGate 之类的东西来捕获 oracle 中的更改并将它们应用到 mysql 数据库,尽管如果这是您拥有的一个用例,产品的成本可能不合理,在这种情况下可能只需一个简单的 perl/php/python/etc 脚本就可以了。

    我在 mysql 4 和 oracle 9i 之间使用了 HSODBC 链接,发现性能不太理想,希望情况有所改善,如果是这样,这可能是一个可行的解决方案,但是您仍然需要这样做一份工作(在 oracle 内部或外部),因为无论如何我都不知道要从 mysql 调用 oracle。

    【讨论】:

      【解决方案3】:

      Oracle 支持通过 DBLink 连接 Oracle 数据库。但我不相信存在一些用于连接 Mysql 和 Oracle 的工具,可以让您直接执行您提出的查询。

      我可以建议您编写一个脚本(例如在 Python 或 Groovy 中)并将其安排在 CRON Linux 上(如果这是您的环境)。由于您需要实现批量更新的数据大小(它特定于您将用于实现脚本的语言)

      【讨论】:

      • 感谢您的回答,我现在要阅读有关 dblink 的信息,并且...我忘了指定 SO。编辑问题...
      • 请注意,DBLINK 仅适用于 Oracle 数据库之间
      猜你喜欢
      • 2011-10-15
      • 2013-09-05
      • 2014-05-02
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      相关资源
      最近更新 更多