程序员人生 网站导航

将oracle的数据导入到mysql的三种方法

栏目:数据库应用时间:2016-06-12 16:02:50

1.Navicat Premium中的数据迁移工具

为了生产库释放部份资源,需要将API模块迁移到mysql中,及需要导数据。

尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量,用这类简陋的工具不大可靠。

意外发现平时用的数据库视图工具Navicat Premium中有数据迁移工具,意外的好用。这个工具本身支持mysql,oracle,sqlLite,PostgreSql数据库,因此而也提供了在不同数据库之间迁移数据的功能。

迁移之前,先确保你建立了这两个数据库的connection。选择Tools/DataTransfer。

\

选择源数据库,选择你要迁的表,目标数据库
<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141101/2014110109051329.png" alt="\">

选择周边。

\

迁移进程,左上角为进度。


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

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


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


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


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


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


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


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


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


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


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


102、经过Bulk Data Transfer创建所有表中的数据终了,按“Next”继续。


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


需要补充1点,在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet are not allowed”。这是由于MySQL数据库有1个系统参数max_allowed_packet,其默许值为1048576(1M),可以通过以下语句在数据库中查询其值:show VARIABLES like '%max_allowed_packet%';修改此参数的方法是在mysql文件夹找到my.ini文件,在my.ini文件[mysqld]中添加1行:max_allowed_packet=16777216
重启MySQL,这样将可以导入不大于16M的数据了,固然这数值可以根据需要作调剂。
104、使用MySQL Workbench导入数据
点击Data Import/Restore先导入1次表结构,再导入1次表数据,完成数据库迁移

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. 先把oracle表中的数据另存在excel表中,再把excel表中数据导入到mysql中

这里要将oracle中表eventlogs的数据导入到mysql中。步骤以下:

    1、在PL/SQL中用select * 搜索到eventlogs表的所有数据,然后右键点击"Copy to Excel";以下图所示:

          

     2、将数据保存为excel表,并重名;以下图:

         

    3、打开mysql的可视化工具,我这里是Navicat,选择表,点击导入向导;以下图所示:

 

    4、选择上图中"导入类型"的"execel文件",然后点击"下1步";以下图所示:

        

    5、接下来会让你选择文件,选择你已保存的excel文件,并选择“SQL Result”,以下图所示:

 

    6、然后1直点下1步直至步骤6,填充目标栏位。第1个栏位1般是空的,根据你的需要填。我这里填为"_id",并设为主键。以下图所示:


   7、然后1直点击下1步,最后1步点击开始。会出现1个“sql result”的表,重命名为你想要的表便可。如图所示:


     数据已导入了。其中表中数据类型若不合你的要求,你可以再设计表。




------分隔线----------------------------
------分隔线----------------------------

最新技术推荐