我有2个数据库,第一个是Mysql数据库,它是用于网站。第二个是Oracle数据库,它有我想在网站上显示的数据,而且数据必须是最新的,我的意思是,我需要每隔30分钟执行一个进程,将数据从oracle数据库迁移到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.tableOracle数据库在Windows上,Mysql在Linux (Ubuntu)上。
这有可能吗?多么?否则,请给我一个不同的建议。
发布于 2011-10-19 23:27:54
有了用于MySQL数据库的ODBC驱动程序,您可以尝试dbForge Studio for Oracle中的Data Export tool (具有命令行支持)。
发布于 2011-10-20 15:27:06
您还可以使用诸如GoldenGate之类的工具来捕获oracle中的更改并将它们应用于mysql数据库,尽管如果这是您拥有的一个用例,那么产品的成本可能是不合理的,在这种情况下,可能只需要一个简单的perl/php/python/etc脚本就可以做到这一点。
我使用了mysql4和oracle 9i之间的HSODBC链接,发现性能不是很好,希望情况有所改善,如果是这样的话,这可能是一个可行的解决方案,但是你仍然需要作为一项工作来做(在oracle内或在oracle外),因为我不知道如何从mysql调用oracle。
发布于 2011-10-19 22:41:59
Oracle支持通过DBLink连接Oracle数据库。但是我不相信有什么工具可以连接Mysql和Oracle,让您直接执行您建议查询。
我可以建议您编写一个脚本(通过Python或Groovy中的示例),并在CRON Linux上调度它(如果这是您的环境)。由于数据的大小,您将需要实现批量更新(它特定于您将实现脚本的语言)
https://stackoverflow.com/questions/7822954
复制相似问题