使用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先导入一次表结构,再导入一次表数据,完成数据库迁移

时间: 2024-12-22 21:17:47

使用MySQLMigrationToolkit快速将Oracle数据导入MySQL的相关文章

oracle数据导入mysql数据库日期格式问题

问题描述 oracle数据导入mysql数据库日期格式问题 从oralce数据库导出日期格式数据为 to_date('13-04-2015 16:40:12', 'dd-mm-yyyy hh24:mi:ss'), 如何把它修改为yyyy-mm-dd的形式存储到mysql数据库中,由于数据比较多,一条条修改太过麻烦,有没有什么好的方法 解决方案 参考import CSV to MySQL and convert date LOAD DATA LOCAL INFILE '/Users/Path/To

sqlserver数据导入mysql

  在工作中遇到sqlserver的数据导入mysql的问题,在网上查了一下相关资料,有用mysqlodbc的也有用其他软件导入的,都需要安装相关插件.我的问题只是数据库中一个表的导入,不需要整个数据库全部移植,所以不想那么麻烦,于是就自己尝试了一下数据格式转换的方式,呵呵,幸运的是问题解决了,而且还挺简单,拿来与大家分享一下. 基本原理sqlserver数据表--->csv文件---->导入mysql数据库. 实现步骤: 1.打开sqlserver企业管理器,选中数据库中要移植的表,点击右键

Oracle数据导入导出imp/exp(转)

      在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 一.Oracle数据导出exp  1.Exp参数详解(红色字体代表比较重要的参数): (1) USERID 运行导出命令的帐号的用户名/口令 (2) BUFFEER 用来取数据行的缓冲区的大小 (3) FILE 导出转储文件的名字 (4) COMPRESS 导出是否应该压缩有碎片的段成一个范围,这将会影

sqoop将oracle数据导入hbase的问题,求各位大神们指导

问题描述 sqoop将oracle数据导入hbase的问题,求各位大神们指导 sqoop将oracle数据导入hbase,要求可以Java连接服务器上的sqoop,sqoop1可以直接实现但是没有Java client的API,sqoop2 有client但是不能直接实现oracle到hbase,这是我得出的结论,请教大神们,有没有好的方法?

excel数据导入mysql数据库二种方法

下面我们要讲二种excel数据导入mysql教程数据库教程方法了,这二种方法比较简单,也是很方便的,以前我把excel数据导入到mysql数据库都是用php教程程序来实例,现在我们不需要程序,用现有的工具就行了. 方法一,利用phpmyadmin把excel数据导入mysql数据库方法如下 这是excel的,必须是这种样子的. 在phpmyadmin导入文件的格式应该如上图配置.(注意一点,导入的excel表的结构必须与mysql数据表的结构,数据类型等一致就ok了.否则会导入失败的. 方法二,

Oracle数据导入导出10g数据方法

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用. 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,  DOS中可以执行时由于 在oracle 8i 中  安装目录ora81BIN被设置为全局路径,  该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出

LINUX下Oracle数据导入导出的方法详解_oracle

本文讲述了LINUX下Oracle数据导入导出的方法.分享给大家供大家参考,具体如下: 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移   它有三种模式: a.  用户模式: 导出用户所有对象以及对象中的数据: b.  表模式: 导出用户所有表或者指定的表: c.  整个数据库: 导出数据库中所有对象. 2. 导出工具exp交互式命令行方式的使用的例子: $ex

SQL Server的数据导入MySQL数据库方法简介

[导读]本文介绍将存放在sql server数据库中的数据全部导入到mysql数据库中的两种方法. 第一种是安装mysql ODBC,利用sql server的导出功能,选择mysql数据源,进行数据的直接导出,这种方法很简便,但是针对实际应用有很多弊端,最主要体现就是数据类型问题,首先,sql server数据库中的ntext,image等数据类型的数据无法直接写入到mysql数据库中,据说只要稍加改动就可以,可惜偶这只菜鸟还没想到如何改动,其次,因为偶在mysql中的数据库设计中将时间都设成

解析csv数据导入mysql的方法

mysql自己有个csv引擎,可以通过这个引擎来实现将csv中的数据导入到mysql数据库中,并且速度比通过php或是python写的批处理程序快的多.具体的实现代码示例: 复制代码 代码如下: load data infile '/tmp/file.csv' into table _tablename (set character utf8) fields terminated by ',' enclosed by '"' lines terminated by 'rn'; 这段代码中涉及的一