从Oracle迁移到MySQL

前端之家收集整理的这篇文章主要介绍了从Oracle迁移到MySQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们的Oracle数据库遇到严重的性能问题,我们希望尝试将其迁移到基于MysqL数据库(直接使用MysqL,或更好地是Infobright).

事实是,如果不是几个月,我们需要让旧的和新的系统重叠至少几个星期,而在我们真正了解之前,如果新数据库的所有功能符合我们的需求.

所以,这是我们的情况:

Oracle数据库由包含数百万行的多个表组成.白天,有数以千计的声明,我们不能停止迁移.

每天早上,将新数据导入到Oracle数据库中,取代数千行.复制这个过程不是一个问题,所以在理论上我们可以并行地导入这两个数据库.

但是,这里面临的挑战在于,为了实现这一目标,我们需要从Oracle数据库导出一天的一致状态. (星期一我们不能出口一些桌子等等)这意味着至少出口应该在不到一天的时间内完成.

我们的第一个想法是转储模式,但是我无法找到一个将Oracle转储文件导入MysqL的工具.导出CSV文件中的表可能会起作用,但恐怕可能需要太长时间.

所以我现在的问题是:

我该怎么办?有什么工具可以将Oracle转储文件导入MysqL吗?有没有人有这样大规模迁移的经验?

PS:请不要为Oracle提出性能优化技术,我们已经尝试了很多:-)

编辑:我们以前已经尝试过一些ETL工具,只能发现它们的速度还不够快:只输出一个表已经花了4个多小时…

第二个编辑:来的人…没有人尝试尽可能快地导出整个数据库,并转换数据,以便可以导入到另一个数据库系统?

Oracle不提供现成的卸载实用程序.

请记住,没有关于您的环境(oracle版本?服务器平台?多少数据?什么数据类型)的全面信息?这里的所有内容都是YMMV,您将希望在系统上执行性能和时间安排.

我的点1-3只是通用数据运动的想法.点4是一种可以减少停机时间或中断到几分钟或几秒钟的方法.

1)有第三方实用程序可用.我已经使用了其中的一些,但最适合你自己检查出你的预期目的.几个第三方产品列在这里:OraFaq.不幸的是,很多人在Windows上运行,这将减慢数据卸载过程,除非您的DB服务器在Windows上,并且可以直接在服务器上运行加载实用程序.

2)如果您没有像LOB这样的复杂数据类型,那么您可以使用sqlPLUS滚动自己的数据类型.如果您一次做了一张桌子,那么您可以轻松地并行化.主题已经在这个网站上访问了大概不止一次,这里是一个例子:Linky

3)如果你是10g,那么外部表可能是一个执行这个任务的方法.如果创建一些与当前表格相同结构的空白外部表,并将数据复制到其中,则数据将被转换为外部表格式(文本文件).再次,OraFAQ到rescue.

4)如果您必须将系统并行保存数天/周/月,则可以使用更改数据捕获/应用工具进行近零停机.准备支付$$$.我使用金门软件的工具,可以挖掘Oracle重做日志,并将插入/更新语句提供给MysqL数据库.您可以迁移大部分数据,而不要在上线之前的一周内停机.然后在生命周期期间,关闭数据库,金门追赶最后剩余的事务,然后打开对新目标数据库的访问.我已经使用这个升级了,追赶期只有几分钟.我们已经有了金门的网站许可证,所以对我们来说这并不是什么东西.

我会在这里扮演Cranky DBA的角色,说如果你不能让Oracle表现不错,我很乐意看看MysqL如何解决你的特定问题.如果您有一个应用程序无法触及sql,那么还有很多可能的方式来调整Oracle. /肥皂盒

猜你在找的Oracle相关文章