MySQL到Oracle数据库迁移

时间:2016-04-28 09:45:02

标签: mysql database oracle database-migration

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

  

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

由于数据库非常庞大,约束不能从MySQL正确复制到Oracle,我需要明确定义/更改/添加约束,这很费时间(SQL开发人员将数据从mysql迁移到Oracle的300rec / min)&整个过程,视图,函数都需要重新编写。

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

4 个答案:

答案 0 :(得分:1)

没有具体的答案,但根据我的移民经验,有一些想法。

我发现通常没有一种工具可以很好地完成整个迁移工作,而且整个工作我的意思是:

  1. 快速
  2. 处理所有数据类型,方案
  3. 那是从Oracle到Oracle !!

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

    我们总是以混合方式结束,例如:

    1. 手动提取所有DDL并预先创建对象 - 在提取DDL时混淆了它们的标准工具存在缺陷,例如:我们发现10g expdp没能很好地处理一些古怪的PLSQL,所以我们自己解决这个问题。

    2. 有些表适用于SQL Loader,其他表适用于GG,其他(很少见)带有自定义提取和加载过程。我们有超过3,500个表,并确定了大约100个表作为SQLLoader而不是GG做得更好。当我说得更好时,我的意思是数据处理和迁移速度。我们创建了不同的处理组,使用不同的方法处理每个组。

    3. 一旦我们有一个有效的整体混合方案,我们就会调整,主要是将该任务拆分为并行进程,包括导出和导入方。

    4. 我所有的迁移都是大项目,我们已经从一个Oracle系统/服务器转移到另一个系统/服务器,总是目标是更新版本的操作系统和Oracle。

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

答案 1 :(得分:0)

最近,我已成功将 MySQL数据库迁移到Oracle数据库。以下是详细步骤:

操作系统:amazon aws上的桌面Ubuntu本地和桌面Ubuntu

  

请注意:这里我使用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

  

sudo apt-get install sqldeveloper-package debhelper openjdk-7-jdk
  openjdk-7-jre icedtea-7-plugin

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

make-sqldeveloper-package sqldeveloper-4.1.3.20.78-no-jre.zip

这将生成一个debian包,可用于安装SQL开发人员。

  • 现在使用命令安装生成的.deb包(你的deb 可能也有不同的版本)
  

sudo dpkg -i sqldeveloper_4.1.3.20.78 + 0.2.4-1_all.deb

  • 在我的情况下,我使用了java 8。

第3。在使用VNCServer在新创建的ec2实例上完成SQL开发人员安装之后,您需要做的就是使用ubuntu本地计算机默认使用远程桌面客户端连接到该ec2实例。

  • 在#1中使用IP:1和VNCServer的用户/通行设置 enter image description here
  • 您可以看到远程ec2 ubuntu桌面服务器。如果要在远程服务器内选项卡,则必须从远程桌面工具中获取键盘输入。
  • 与远程客户端建立连接后,从终端或资源管理器中打开SQL Developer。
  

的SQLDeveloper

  

请注意:按照提供的迁移步骤进行操作   oracle他们会要求目标数据库连接,即oracle   数据库连接。这不是MySQL的数据库   数据库将被迁移。相反,这个数据库连接会   用于迁移过程。 您的数据库连接用户   必须有用户和数据库创建权限。一旦你的连接   拥有用户创建权限,然后迁移过程自动创建   Oracle数据库中相应的数据库用户[如果MySQL中有mysql_test_db   数据库,同样的mysql_test_db也将在Oracle db中创建]。

答案 2 :(得分:0)

您可以在Oracle网站上找到SQL developer documentation的预期内容。 所有Microsoft Access usersMySQL usersMicrosoft SQL Server and Sybase Adaptive Server users都有可用的迁移信息。

您还可以以PDF格式(最适合离线观看和打印),ePub(最适合大多数移动设备)和Mobi(适用于亚马逊Kindle设备)下载教程。

答案 3 :(得分:0)

我最近使用了sqline的工具http://www.sqlines.com/cmd,将MySQL的转储以.sql脚本的形式转换为(几乎)Oracle兼容的sql脚本。

sqlines31113\sqlines.exe -s=mysql -t=oracle "-in=$infile"

我只需要(半手动)修复输出中的某些内容,然后就可以在oracle数据库上运行它了。

相关问题