oracle转mysql工具使用方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle迁移mysql工具使用方法
目录
文档修改历史....................................... 错误!未定义书签。

1. 工具使用简介 (3)
1.1. 前言 (3)
1.2.使用环境 (3)
2. MySQL Migration Toolkit工具 (4)
2.1.安装MySQL Migration Toolkit (4)
2.2. 第一次运行加载jar包 (4)
2.3. 填写oracle数据库的连接信息 (4)
2.4. 填写mysql数据库的连接信息 (5)
2.5.选择oracle中需要迁移的数据库 (5)
2.6.选择需要迁移的表 (6)
2.7.设置数据库编码参数 (7)
2.8.修改建表脚本 (7)
2.9.选择脚本存储目录 (8)
2.10.建表sql完成 (8)
2.11.选择目录存储表中数据 (9)
2.12.数据sql创建完毕 (10)
2.13.完成 (10)
3. MySQL Workbench工具 (11)
3.1.安装MySQL Workbench (11)
3.2.选择数据库实例 (11)
3.3.执行sql脚本 (12)
4. Oracle序列的迁移 (14)
4.1.迁移介绍 (14)
4.2.迁移方法 (14)
1.工具使用简介
所使用的工具包含:
①使用MySQL Migration Toolkit产生create、insert的脚本文件
②使用MySQL Workbench导入脚本文件。

1.1.前言
很多项目是基于Oracle数据库的,Oracle功能强大,但是部署和管理较复杂,更重要的是,购买Oracle的费用不是每个客户都愿意承担的。

因此,不少企业迫切需要把项目所用数据库移植到一个简单好用的数据库上。

当然,如您所料,选择了广受欢迎的MySQL。

作为一个开源数据库,MySQL用无数案例证明了她的可用性,因此让我们把重点放在如何将Oracle移植到MySQL上。

已经有很多的文章和专题介绍了Oracle 移植到MySQL的方法和步骤,也有相当多的工具可以辅助这种移植过程。

但是,由于数据库实现的差异,完美的移植工具是不存在的,移植过程中不断碰到的问题证明了这一点,特别是您使用了Oracle的一些高级特性时。

从Oracle移植到MySQL主要有六个方面的内容需要移植,一是表Table,包括表结构和数据,二是触发器Trigger,三是存储过程Procedure,函数function 和包Package,四是任务Job,五是用户等其他方面的移植,六是具体应用程序通过SQL语句访问时的细节差异克服。

本文主要介绍的是oracle移植到mysql:①表的移植,包括表结构和数据②序列的移植。

1.2.使用环境
1、151测试机上oracle 11g
2、155测试机上mysql5.6
2.MySQL Migration Toolkit工具
2.1.安装MySQL Migration Toolkit
先到/downloads/gui-tools/5.0.html下载MySQL GUI Tools(其实就是一个MySQL管理工具),其中就包括MySQL Migration Toolkit工具,一路next安装完毕
2.2.第一次运行加载jar包
第一次运行需要加载ojdbc14.jar包
运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar,然后重新启动MySQL Migration Toolkit。

2.3. 填写oracle数据库的连接信息
加载驱动程序之后,来到Source Database界面将变成如下的形式,在其中填写Oracle数据库的连接信息,按“Next”继续。

2.4.填写mysql数据库的连接信息
在Target Database中默认Database System为MySQL Server,在Connection Parameters中填写相应的MySQL数据库的连接信息,按“Next”继续。

2.5.选择oracle中需要迁移的数据库
经过Connecting to Server测试通过后按“Next”,到Source Schemata Selection,点选准备进行数据迁移的数据库后按“Next”继续。

2.6.选择需要迁移的表
经过Reverse Engineering测试通过后按“Next”,在Object Type Selection,点Detailed selection按钮,在下方左侧列表中选择不进行迁移的表,将其放入右侧列表后,即左侧列表剩余的表都将进行数据迁移。

选择好之后按“Next”继续。

2.7.设置数据库编码参数
在Object Mapping的Migration of type Oracle Schema,如果要设置参数,点Set Parameter按钮。

如果默认数据库表为UTF8的话,则选择Multilanguage;如果默认数据库表为GBK的话,则需要选择User defined,并在下方填写charset=gbk, collation=gbk_general_ci。

Migration of type Oracle Table中要设置参数点Set Parameter按钮。

如果默认数据库表为UTF8的话,则选择Data consistency/multilanguage;如果默认数据库表为GBK的话,则需要选择User defined,并在下方填写addAutoincrement=yes, charset=gbk, collation=gbk_general_ci, engine=INNODB。

选择好之后按“Next”继续。

2.8.修改建表脚本
经过Migration测试通过后,再到Manual Editing,在这里可以修改建表脚本。

由于Oracle与MySQL之间语法规则的差异,通常需要对脚本的数据类型以及默认值进行调整,比如Oracle中通常会对Timestamp类型的数据设置默认值sysdate,但在MySQL中是不能识别的。

在Filter中选择Show All Objects,然后在Migrated Objects中选择要修改脚本的表,再点击左下方的Advanced 就可以进行脚本编辑了。

修改完之后点击右侧Apply Changes按钮保存,按“Next”继续。

2.9.选择脚本存储目录
在Object Creation Options中,选择本地磁盘储存数据表结构,按“Next”继续。

2.10.建表sql完成
经过Creating Objects创建所有表的结构完毕,表中并没有数据,按“Next”继续。

2.11.选择目录存储表中数据
一路“next”来到Data Mapping Options,选择本地磁盘储存数据表中的数据,按“Next”继续。

2.12.数据sql创建完毕
2.1
3.完成
来到summary显示此次数据转换的信息,可以保存成文件,按“Finish”完成。

3.MySQL Workbench工具
3.1.安装MySQL Workbench
MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。

它是著名的数据库设计工具DBDesigner4的继任者。

你可以用MySQL Workbench设计和创建新的数据库图示,建立数据库文档,以及进行复杂的MySQL 迁移。

MySQL Workbench是下一代的可视化数据库设计、管理的工具,它同时有开源和商业化的两个版本。

该软件支持Windows和Linux系统
先到载MySQL Workbench 5.2.28,一路next安装完毕
3.2.选择数据库实例
1.点击左上角的“+”
2.配置登陆信息
3.点击配好的实例登陆
点击155就可以登陆了
3.3.执行sql脚本
1.选择Data Import/Restore
2.执行create.sql脚本
选择导入sql脚本的地址,以及需要导入mysql的数据库,点击startImport
3.建表完成
4. 执行insert.sql脚本
使用同样的方式执行insert.sql脚本
5.导入数据完成
4.O racle序列的迁移
4.1.迁移介绍
大家知道,Oracle通常使用序列sequence配合触发器实现自增字段,但是MySQL和SQL Server等一样,不提供序列,而直接提供字段自增属性(属性类型为数字类型)。

所以,请把Oracle里面的自增字段实现直接改为MySQL的字段属性,而且,这个字段必须是主键(key)并且不能有默认值。

4.2.迁移方法
例如,oracle中sr_ch_change表的SEQ_SR_CH_CHANGE是序列,那么在mysql 的sr_ch_change表中增加SEQ_SR_CH_CHANGE字段,将其设置为自增长AUTO_INCREMENT。

如:alter table sr_ch_change add column SEQ_SR_CH_CHANGE int(10) AUTO_INCREMENT NOT NULL unique key;。

相关文档
最新文档