程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 使用MySQLMigrationToolkit快速將Oracle數據導入MySQL

使用MySQLMigrationToolkit快速將Oracle數據導入MySQL

編輯: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先導入一次表結構,再導入一次表數據,完成數據庫遷移

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved