MySQL到Oracle数据库迁移

问题描述:

我有一个任务将MySQL数据库迁移到Oracle(它是我的要求)我尝试使用SQL开发人员迁移,如下面的链接定义。MySQL到Oracle数据库迁移

https://www.packtpub.com/books/content/migrating-mysql-table-using-oracle-sql-developer-15

由于DB是巨大的,约束不从MySQL正确复制到Oracle,我需要明确定义/修改/添加约束,这是费时(SQL开发人员将数据迁移从mysql到Oracle的300rec/min)&整个程序,视图,功能都需要重新编写。

  1. 如何确保数据已正确迁移?
  2. 这是一个正确的迁移方法吗?
  3. 我是否应该转移到任何有助于迁移的工具?如果是,请提供该工具..!
  4. 或者从MySQL迁移到Oracle是正确的。

在此先感谢。

+0

你使用了什么版本的SQL Developer?对于想要进行离线移动的数据迁移 - 然后我们使用SQL * Loader或外部表来移动数据,速度比您在线数据移动时快得多。给我一个表/约束的例子,我可以看到它被带到Oracle时发生了什么。 – thatjeffsmith

+0

SQL开发者3.2.20.09。自2012年以来, – Aakeef

+0

得到了很多更新和错误修复。看看你是否无法获得版本4.1.3 – thatjeffsmith

没有具体的答案,但一些基于我的移民经验的一般想法。

我发现,通常有没有一个工具,做整个迁移工作做好,并通过整个工作我的意思是:

  1. 快速
  2. 处理所有的数据类型,场景

这就是从Oracle到Oracle!

最后一个项目我们尝试了Oracle Golden Gate,发现其中存在问题。

我们始终以混合方式结束了,就像有些事情:

  1. 提取所有DDL手动和预创建对象 - 有在stagndard工具提取DDL时混淆他们的弱点,例如我们发现10g expdp并没有很好地处理一些古怪的PLSQL,所以我们采取了自己的方式来提取它。

  2. 一些表与SQL加载程序,其他与GG,其他(罕见)与自定义提取和加载过程很好。我们有超过3500个表格,并确定了大约100个表现更好的SQLLoader而不是GG。当我说得更好时,我的意思是数据处理和移植速度。我们创建了不同的处理组,每个组都有不同的方法。

  3. 一旦我们有一个可行的整体混合方案,我们将调整,主要是将该任务分成并行进程(导出和导入)。

我所有的迁移都是大型项目,我们已经从一个Oracle系统/服务器转移到另一个系统/服务器,目标是新版OS和Oracle。

所以,我会想象非Oracle和Oracle之间的迁移将会遇到更多的挑战,并且可能不会像在SQL * Developer中点击几个按钮那样微不足道。

+0

谢谢@TenG的输入。对于复制数据/对齐表结构,调整约束条件来说,这是一件非常头痛的事情。 除Golden Gate之外,有没有其他工具可以导入数据? – Aakeef

最近,我已成功将MySQL数据库迁移到Oracle数据库。下面是具体步骤:

操作系统:桌面Ubuntu的本地和桌面Ubuntu的亚马逊AWS

请注意:这里我使用AWS的桌面Ubuntu的服务器,因为我的MySQL 数据库是相当大。在我的情况下,有800个表格,200个视图, 过程,触发器和函数。数据库的总大小几乎是 20GB。在小数据库的情况下,我会建议使用本地Ubuntu服务器。

使用的工具: SQL Developer中的vncserver,远程桌面客户端,JAVA 8,第三方MySQL JDBC驱动程序

1.设置EC2 Ubuntu桌面服务器:https://www.youtube.com/watch?v=ljvgwmJCUjw

2。在#1上安装SQL Developer

命令和apt-get安装的SQLDeveloper包的debhelper的OpenJDK-7-jdk的
的OpenJDK-7的JRE的IcedTea-7-插件

  • 现在,所有你需要做的是运行命令(你可能有一个 不同版本)

化妆的SQLDeveloper封装sqldeveloper-4.1.3.20.78-no-jre.zip

这将生成,您可以使用安装SQL开发Debian软件包。

  • 现在使用命令(你的deb 可能有不同的版本太多)

须藤dpkg -i来sqldeveloper_4.1.3.20.78 + 0.2.4-1_all安装所产生的.deb软件包。DEB

  • 就我而言,我已经使用的Java 8

3.一旦你与你的SQL Developer安装完成对新创建的EC2实例与vncserver的,那么所有你需要做的是在你的ubuntu本地机器上默认可用远程桌面客户端连接到那个ec2实例。

  • 使用IP:1用户名/密码设置vncserver的在#1 enter image description here
  • 你可以看到远程EC2 Ubuntu桌面服务器。如果要在远程服务器中进行选项卡签名,则必须从远程桌面工具中获取键盘输入。
  • 一旦您连接到远程客户端,从终端或浏览器打开SQL Developer。虽然下面由 提供的迁移步骤:

的SQLDeveloper

请注意ORAC他们将要求目标数据库连接,即oracle 数据库连接。这不是您的MySQL数据库将被迁移的数据库。相反,此数据库连接将使用 进行迁移过程。 您的数据库连接用户 必须具有用户和数据库创建权限。一旦你的连接 具有用户创建权限,那么迁移过程会自动在Oracle数据库中创建相应的数据库用户 [如果MySQL数据库中有mysql_test_db,则同样会在Oracle数据库中创建mysql_test_db]。

您可以在Oracle网站上找到来自SQL developer documentation的预期内容。 有全部Microsoft Access users,MySQL users,Microsoft SQL Server and Sybase Adaptive Server users可用的迁移信息。

您还可以下载PDF格式的教程(适用于脱机查看和打印),ePub(适用于大多数移动设备)和Mobi(适用于Amazon Kindle设备)。