当前位置: 首页 > 面试题库 >

从Oracle迁移到MySQL

广晔
2023-03-14
问题内容

我们的Oracle数据库遇到了严重的性能问题,我们想尝试将其迁移到基于MySQL的数据库(直接使用MySQL,或者最好是Infobright)。

问题是,在我们实际上不知道新数据库的所有功能是否符合我们的需求之前,我们需要让旧系统和新系统至少重叠数周(如果不是几个月)。

因此,这是我们的情况:

Oracle数据库由多个表组成,每百万行。白天,实际上有成千上万的语句,我们无法停止迁移。

每天早晨,新数据都会导入到Oracle数据库中,从而替换了数千行。复制此过程不是问题,因此从理论上讲,我们可以并行导入两个数据库。

但是,挑战就在这里,要使此工作正常进行,我们需要从一天开始以一致的状态从Oracle数据库进行导出。(我们不能在星期一导出某些表,而在星期二不能导出其他表,等等。)这意味着,至少导出应在不到一天的时间内完成。

我们最初的想法是转储架构,但是我找不到能够将Oracle转储文件导入MySQL的工具。将表格导出为CSV文件可能会起作用,但恐怕可能会花费太长时间。

所以我的问题是:

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

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

编辑: 我们已经尝试过一些ETL工具,才发现它们不够快:仅导出一张表已经花费了4多个小时…

第二编辑: 来吧……没有人尝试过尽快导出整个数据库并转换数据以便可以将其导入另一个数据库系统吗?


问题答案:

Oracle不提供开箱即用的卸载实用程序。

请记住,如果没有有关您的环境的全面信息(Oracle版本?服务器平台?多少数据?什么数据类型?),这里的所有内容都是YMMV,您可能希望在系统上使用它来提高性能和计时。

我的观点1-3只是通用的数据移动思想。第4点是一种将停机时间或中断时间减少到几分钟或几秒钟的方法。

1)有第三方实用程序。我已经使用了其中一些,但最适合您根据自己的意图检查一下。这里列出了一些第三方产品:OraFaq。不幸的是,除非其中的DB服务器在Windows上并且您可以直接在服务器上运行load实用程序,否则它们中的许多都将在Windows上运行,这会减慢数据卸载过程。

2)如果您没有像LOB这样的复杂数据类型,则可以使用SQLPLUS进行滚动。如果您一次创建一个表,则可以轻松对其进行并行化。可能已经多次访问了此主题,这里有一个示例:Linky

3)如果您的年龄在10克以上,则外部表可能是完成此任务的一种有效方法。如果创建具有与当前表相同结构的空白外部表并将数据复制到它们中,则数据将转换为外部表格式(文本文件)。再次,OraFAQ进行救援。

4)如果必须将系统并行运行几天/几周/几月,请使用变更数据捕获/应用工具将停机时间几乎设为零。准备支付$$$。我使用了Golden Gate
Software的工具,该工具可以挖掘Oracle重做日志并向MySQL数据库提供插入/更新语句。在上线前一周,您可以在不停机的情况下迁移大量数据。然后在上线期间,关闭源数据库,让Golden
Gate赶上最后剩下的事务,然后打开对新目标数据库的访问。我已经使用它进行升级了,追赶期只有几分钟。我们已经有了Golden
Gate的站点许可证,因此对于我们而言,这并不是什么便宜的事情。


我将在这里扮演Cranky
DBA的角色,并说如果您不能使Oracle表现良好,我很乐意看到有关MySQL如何解决您的特定问题的文章。如果您有一个无法使用SQL的应用程序,那么仍有许多可能的方法来调整Oracle。/肥皂盒



 类似资料:
  • 我正在将我的java应用程序从Oracle JDK迁移到AdoptopenJDK,那么迁移到AdoptopenJDK需要做哪些更改。

  • 我正在将我的项目从Oracle JDK迁移到open JDK。 该项目是maven构建的,所有依赖项都在pom文件中。 我想知道是否有一种方法可以使用我的pom.xml文件,并用等效的开源JAR获得我所有的JAR? 到目前为止,我正在手动查看每个JAR的发行说明,并检查是否有开源许可证。 这里,当我说Oracle licensed时,我的意思是它不是一个开源的JAR。 感谢你的帮助!!!!干杯!!

  • 我们正计划将项目从Oracle JDK迁移到OpenJDK。我有一些关于这个的问题。 > 在做了一些分析之后,我发现现在我的问题是,迁移到OpenJDK是否是一个好主意。因为如果上面的说法是正确的,那么我们需要每6个月在应用程序中升级一次OpenJDK 参考:Oracle JDK和OpenJDK之间的区别 进行此迁移所需的基本更改是什么。当我说基本更改时,我的意思是我需要在很高的层次上理解,我知道

  • 问题内容: 在我的应用程序中,我从UIWebView迁移到WKWebView,如何为WKWebView重写这些功能? 和 问题答案: UIWebView => WKWebView等效 关于您可以写: 对于:

  • 考虑: 为什么,我怎么才能让它起作用? 我的CPU是i5-10210u(支持AVX-256)。在X64版本/调试中运行。

  • TypeScript不是凭空存在的。 它从JavaScript生态系统和大量现存的JavaScript而来。 将JavaScript代码转换成TypeScript虽乏味却不是难事。 接下来这篇教程将教你怎么做。 在开始转换TypeScript之前,我们假设你已经理解了足够多本手册里的内容。 如果你打算要转换一个React工程,推荐你先阅读React转换指南。 如果你在写纯JavaScript,你大