Oracle數據導入MySQL的快捷工具:MySQL Migration Toolkit

Oracle數據庫中的數據某些情況下需要導入到MySQL中,如何方便快捷地導入呢?使用MySQL GUI Tools中的MySQL Migration Toolkit就可以輕松搞定,該工具對CLOB、BLOB類型的數據也有非常好的支持。
  以下是利用該工具將原有的Oracle數據庫中的數據導入到MySQL的過程。
  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的數據瞭,當然這數值可以根據需要作調整。

發佈留言