使用MySQL Migration Toolkit快速导入Oracle数据

近来笔者有项目需要将原有的Oracle数据库中的数据导入到MySQL中,经过试用发现MySQL GUI Tools中的MySQL Migration Toolkit可以非常方便快捷的将Oracle数据导到MySQL中,特别是对CLOB、BLOB类型的数据也有非常好的支持。下面笔者来介绍一下MySQL Migration Toolkit的使用,该软件可以在http://dev.mysql.com/downloads/gui-tools/5.0.html处下载到。

  1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar。

  

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

  

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

  

  3、进行数据库连接测试,测试通过后按“Next”到Source Schemata Selection,点选准备进行数据迁移的Schemata后按“Next”继续。

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

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

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

  7、然后一路“Next”,如果没有提示出错的话,就可以将指定表中的数据导入MySQL了。如果有提示出错信息,则需要返回到Manual Editing处对脚本重新进行修改。

  需要补充一点,在导大容量数据特别是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的数据了,当然这数值可以根据需要作调整。

原文出处:http://www.cnblogs.com/dev2dev/archive/2010/03/30/1700320.html

时间: 2024-10-13 23:09:03

使用MySQL Migration Toolkit快速导入Oracle数据的相关文章

使用MySQL Migration Toolkit快速将Oracle数据导入MySQL[转]

使用MySQL Migration Toolkit快速将Oracle数据导入MySQL上来先说点废话本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoDB非关系型数据库,所以干脆一起研究一下,对比学习中找不同,首先说一下本人使用的数据库版本和可视化工具Oracle10G—PL/SQL Developer9MySQL5.5.29—MySQL Workbench6.0MongoDB2.4.9(32bit最大2G)—Robomongo0.8.4为了保持数据的

使用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 为

MySQL Migration Toolkit v2.1特别版

MySQL数据库转换工具MySQL Migration Toolkit v2.1特别版 支持mssql\oracle\access\excel与mysql互换 可以将任何数据源转换成mysql的数据,也可以将mysql的数据转换成其它类型的数据包括下列工具:Access-to-MySQLDBF-to-MySQLExcel-to-MySQLMSSQL-to-MySQLMySQL-to-AccessMySQL-to-ExcelMySQL-to-MSSQLMySQL-to-OracleOracle-t

.net导入Oracle数据优化小记

.net导入Oracle数据优化小记 工作中遇到一个项目需要每次部署时导入Oracle数据库约4万条数据,原计划使用dmp格式导入,但是这种方式需要依赖数据库的imp.exe文件,环境影响度比较大,于是决定使用Excel进行导入.最初使用Excel导入时每次平均耗时7分钟,不符合项目要求,经过优化后导入时间缩短到30秒左右.以下为本次优化研究的优化小记,希望在以后遇到此类问题时有所帮助.欢迎各位大神评论指教! 一.数据环境 数据库版本为Oracle11g,导入数据涉及数据库中18张表,约4万条数

尝试OUTFIle、INFILE快速导入导出数据

尝试OUTFIle.INFILE快速导入导出数据 应用场景: 前几天开发突然有这么一个需求,想导一份200多G的mysql数据出来到另一台机器上,而且时间有点赶,第一时间就想要使用Xtrabackup来全备与增备.但想到之前使用Xtrabackup来备份恢复的时候出现了各种坑,就问了下同事有什么好建议来快速导出导入数据,后来知道了可以使用select into outfile导出表数据,就冒着尝试一下的心里去弄了一下,得到的结果是惊人的,个人感觉速度要比Xtrabackup快很多. 使用sele

Oracle中用exp/imp命令快速导入导出数据

from: http://blog.csdn.net/wangchunyu11155/article/details/53635602 [用 exp 数 据 导 出]: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中   exp system/[email protected] file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出   exp system/[email protected

mysql的卸载重装+导入大量数据失败的解决方案+工具执行和项目执行结果不同

1.卸载 1>快捷键win+r输入regedit进入注册表 找到3个文件夹,全部删除 1. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 2. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Se

高效快速导入EXCEL数据

需求1.高效率的以excel表格的方式导入多条数据.2.以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入. 分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存在表中,若没有则插入数据库.否则pass结果数据才几百条的时候,导数据都花了10分钟才导入完毕.实在太慢了,看来在程序中做数据的校验很脑残. 优化在插入数据库之前作判断太花时间,没必要.所以最后将数据的处理交给了数据库来做.建一个临时表CUST_OBJECT_TEMP,先把所有的数据都用 jdbc

分享知识-快乐自己:Excel快速导入Oracle 数据库

需求: oracle 数据库有一个student表,现有一个excel表:student.xlsx,需导入oracle数据库student表中. student表的拥有者是c##MLQ1  密码为:xxx 表结构: 打开需导入的excel表格,单击office按钮,选择另存为--其他格式 选择保存路径(置于D:\),保存类型CSV(逗号分隔)(*.csv),设置文件名为student.csv,单击保存   新建input.ctl文件(置于D:\),内容为: load data infile 'd