使用MySQLMigrationToolkit快速将Oracle数据导入MySQL
使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
上来先说点废话
本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非关系型数据库,所以干脆一起研究一下,对比学习中找不同,首先说一下本人使用的数据库版本和可视化工具
Oracle10G—PL/SQL Developer9
MySQL5.5.29—MySQL Workbench6.0
MongoDB2.4.9(32bit最大2G)—Robomongo0.8.4
为了保持数据的一致,把现有Oracle中的一部分数据移植到MySQL中,百度之后发现MySQL Migration Toolkit不错,现将步骤写出跟大家分享
一、安装MySQL Migration Toolkit
先到http://dev.mysql.com/downloads/gui-tools/5.0.html下载MySQL GUI Tools(其实就是一个MySQL管理工具),其中就包括MySQL Migration Toolkit工具,一路next安装完毕
二、第一次运行需要加载ojdbc14.jar包
运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database
System中选择Oracle Database
Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar,然后重新启动MySQL Migration Toolkit。

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

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

五、经过Connecting to Server测试通过后按“Next”,到Source Schemata Selection,点选准备进行数据迁移的数据库后按“Next”继续。

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

七、在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”继续。

八、经过Migration测试通过后,再到Manual
Editing,在这里可以修改建表脚本。由于Oracle与MySQL之间语法规则的差异,通常需要对脚本的数据类型以及默认值进行调整,比如
Oracle中通常会对Timestamp类型的数据设置默认值sysdate,但在MySQL中是不能识别的。在Filter中选择Show All
Objects,然后在Migrated
Objects中选择要修改脚本的表,再点击左下方的Advanced就可以进行脚本编辑了。修改完之后点击右侧Apply
Changes按钮保存,按“Next”继续。

九、在Object Creation Options中,选择本地磁盘储存数据表结构,按“Next”继续。

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

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

十二、经过Bulk Data Transfer创建所有表中的数据完毕,按“Next”继续。

十三、来到summary显示此次数据转换的信息,可以保存成文件,按“Finish”完成。

需要补充一点,在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet
are not
allowed”。这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M),可以通过如下语句
在数据库中查询其值:show VARIABLES like '%max_allowed_packet%';修改此参数的方法是在mysql文件夹找到my.ini文件,在my.ini文件[mysqld]中添加一行:max_allowed_packet=16777216
重启MySQL,这样将可以导入不大于16M的数据了,当然这数值可以根据需要作调整。
十四、使用MySQL Workbench导入数据
点击Data Import/Restore先导入一次表结构,再导入一次表数据,完成数据库迁移
http://www.2cto.com/database/201402/276445.html
使用MySQLMigrationToolkit快速将Oracle数据导入MySQL的更多相关文章
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]
使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非 ...
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
MySQL GUI Tools中的MySQL Migration Toolkit可以非常方便快捷的将Oracle数据导到MySQL中,该软件可以在http://dev.mysql.com/downlo ...
- Oracle数据导入Mysql中
一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量 ...
- Excel连接到MySQL,将Excel数据导入MySql,MySQL for Excel,,
Excel连接到MySQL 即使当今时代我们拥有了类似微软水晶报表之类的强大报表工具和其他一些灵活的客户管 理应用工具,众多企业在分析诸如销售统计和收入信息的时候,微软的Excel依然是最常用的工具. ...
- oracle数据导入/导出
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据 ...
- Oracle数据导入导出
Oracle数据导入导出imp/exp 在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与ora ...
- 将Excel数据导入mysql数据库的几种方法
将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...
- Oracle数据导入导出imp/exp
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电 ...
- oracle数据导入的常用命令
oracle 中数据库完全导入导出:cmd命令行模式 oracle数据库cmdfile数据库服务器constraints Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.ex ...
随机推荐
- CodeForces - 556D
D. Case of Fugitive time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- 【POI 2010】 Antisymmetry
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2084 [算法] manacher [代码] #include<bits/std ...
- [CF391E2]Three Trees
https://zybuluo.com/ysner/note/1246822 题面 有三棵树,建两条边让他们相连,最大化所有点对距离之和. \(40pts\ n\leq1000\) \(100pts\ ...
- 洛谷 P3398 仓鼠找sugar —— 树链剖分
题目:https://www.luogu.org/problemnew/show/P3398 树链剖分一下,路径就变成线段树上的几个区间: 两条路径相交就是线段树上有区间相交,所以在相应位置打个标记, ...
- Java 输入输出流 (七)
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...
- PCB Genesis 无需启动Xmanager图形窗口运行脚本 实现方法
从事PCB工程行业的都知道,启动Genesis需2个exe程序(Xmanager.exe与get.exe)需一起启动才可以打开我们熟悉的软件, 而Xmanager是图形窗口是给用户UI交互使用的,如果 ...
- Kindergarten Election
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3715 题意:有N个孩子投票选举leader,不能自己选自己.Sheldon ...
- Python机器学习算法 — K-Means聚类
K-Means简介 步,直到每个簇的中心基本不再变化: 6)将结果输出. K-Means的说明 如图所示,数据样本用圆点表示,每个簇的中心点用叉叉表示: (a)刚开始时是原始数据,杂乱无章 ...
- JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?
JAVA.C.C++.Python这四种编程语言,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能简单,成本相对较低,现 ...
- ACM_开挂的小G
开挂的小G Time Limit: 2000/1000ms (Java/Others) Problem Description: 小G寒假在家没网络,闲着没事干又看不下书,就玩起了单机游戏ACM_Ga ...