oracle数据库迁移到MySQL的方法总结

前言

之前搭建了一个extjs + spring + oracle 的这样一个报表系统的框架。 因为其他部门的要求, 也需要这个framework 进行一些特殊的定制。

但是有一个问题是 oracle 的数据库是需要收费的, 个人使用倒没什么问题, 公司使用的话就会有侵权的问题了。
而mysql 则是完全免费的。

所以使用 extjs + spring + mysql  这样的组合应该就没什么问题了。

理论上来说, mysql 已经被oracle 收购, 这两者之间的migrate 应该比较容易, 但实际的迁移还是有一些问题, 以下就说一说一些实现的方式和问题。

方式一: 手动方式导入导出

手动的方式导入, 就是操作步骤会比较繁琐一些。

对table 的结构和数据:

1. 使用 sql developer 把 oracle 的 table 的schema 和 data(.sql 和 .xls) 导出

2. 使用 mysql 的 workbench 创建 table 和导入数据。

这里语法上会稍微有一些不同, 所以需要略微做一些调整。

对于view 来说, 特别是复杂的有子查询的oracle view 说, 要导入到mysql 看起来就不是那么容易了。

方式二: 使用工具navicat 进行导入

navicat , 这是mysql 官方网站上有人建议使用的工具。 这是一个收费的软件。 目前的收费是 1000 到1600 人民币。 但是可以免费试用一个月。

下载安装后, 启动的页面如下:

迁移的流程如下:

1. 新建数据库的连接

建立需要迁移的oracle 和 mysql 的数据库连接。

另外, 建立oracle 连接的时候还需要下载一个oci.dll 的文件。

下载地址:

下载之后, 解压到某个目录:

在 navicat  的 工具 –> 选项 下做类似如下设置:

细部可以参见:http://wiki.navicat.com/wiki/index.php/instant_client_required

完成设置后, 重启 navicat

2.  设置过连接之后, 接下来就可以进行表和数据的migrate 了

点击: 工具 –》 数据传输

在 “常规” 的标签页中设置需要 migrate 的连接

在 “高级” 的标签页中 , 设置需要 migrate 哪些具体的内容:

配置完成之后, 点 “开始” 就可以了。

基本上: 对于 table 的结构和数据的迁移的话, 基本上没什么问题。

但是对于 view 的导入, 因为mysql 的view 的语法不能有子查询语句。

在navite 上, 可以看到从 oracle 导入到 mysql 的时候, view 的checkbox 不能选取。

方式三: 使用工具dbmover 的oracletomysql 进行导入

dbmover这个网站也提供了 oracle 到 mysql 迁移的工具。

下载地址是:

这也是一个收费的软件,  试用版的限制是: 允许迁移的记录条数累计为10万条。

下载安装,启动后会先要求输入 数据库连接的信息:

一直配置完成之后的页面是:

这里就只能看到table 了。

和navicat比较起来, 感觉这个显得简单, 只能migrate table , 而且使用上也不是很方便。

下一次migrate 又得重头到尾输入一次, 没办法记住之前配置的连接。

方式四: 使用工具intelligent-converters 的 oracle-to-mysql 进行导入

同样是一个收费的工具:

下载地址:

使用版的限制是每个table 只能导入 5 笔数据。

操作方式上和dbremover 提供的很类似。好处是能记住上次的一些连接信息。

同样只能对表进行导入。

导入的页面:

总结

以上就是关于数据库迁移之从oracle 到 mysql的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐