关键字:数据库迁移之从oracle 到 MySQL
开场白:
对于水平扩展需求很强烈的大型网站,oracle到mysql的迁徙是必然的,一个重要的因素就是
Oracle数据库是收费的, 而MySQL 则是完全免费的,mysql经过在大型网站的考验及沉淀目前已经修复的很完美了,下面就oracle到mysql的迁徙经验介绍给大家,希望对大家有所帮助。
理论上来说, MySQL 已经被Oracle 收购, 这两者之间的Migrate 应该比较容易, 但实际的迁移还是有一些问题, 以下就说一说一些实现的方式和问题。
方式一: 手动方式导入导出
手动的方式导入, 就是操作步骤会比较繁琐一些。
对Table 的结构和数据:
1. 使用 SQL Developer 把 oracle 的 table 的schema 和 Data(.sql 和 .xls) 导出
2. 使用 MySQL 的 WorkBench 创建 Table 和导入数据。
这里语法上会稍微有一些不同, 所以需要略微做一些调整。
对于View 来说, 特别是复杂的有子查询的Oracle View 说, 要导入到MySQL 看起来就不是那么容易了。
[color=red]方式二: 使用工具Navicat 进行导入[/color]
http://www.navicat.com.cn
Navicat , 这是MySQL 官方网站上有人建议使用的工具。 这是一个[color=red]收费[/color]的软件。 目前的收费是 1000 到1600 人民币。 但是可以[color=red]免费试用一个月[/color]。
下载安装后, 启动的页面如下:
迁移的流程如下:
1. 新建数据库的连接
建立需要迁移的Oracle 和 MySQL 的数据库连接。
另外, 建立Oracle 连接的时候还需要下载一个oci.dll 的文件。
下载地址:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
下载之后, 解压到某个目录:
在 Navicat 的 工具 --> 选项 下做类似如下设置:
InstantClientOptions.jpg
细部可以参见:
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 迁移的工具。
下载地址是:
http://dbmover.com/download/oracletomysql_cn.zip
这也是一个收费的软件, 试用版的限制是: 允许迁移的记录条数累计为10万条。
下载安装,启动后会先要求输入 数据库连接的信息:
一直配置完成之后的页面是:
这里就只能看到table 了。
和Navicat比较起来, 感觉这个显得简单, 只能migrate table , 而且使用上也不是很方便。
下一次Migrate 又得重头到尾输入一次, 没办法记住之前配置的连接。
方式四: 使用工具intelligent-converters 的 oracle-to-mysql 进行导入
同样是一个收费的工具:
下载地址:
http://www.intelligent-converters.com/oracle-to-mysql.htm
使用版的限制是每个table 只能导入 5 笔数据。
操作方式上和DbRemover 提供的很类似。好处是能记住上次的一些连接信息。
同样只能对表进行导入。
导入的页面: