Mysql數據導入(二)

文章轉自:http://blog.csdn.net/superit401/article/details/51547745html

一.Navicat Premium中的數據遷移工具mysql

爲了生產庫釋放部分資源,須要將API模塊遷移到MySQL中,及須要導數據。sql

嘗試了Oracle to mysql工具,遷移時報錯不說,這麼大的數據量,用這種簡陋的工具不大可靠。數據庫

意外發現平時用的數據庫視圖工具Navicat Premium中有數據遷移工具,意外的好用。這個工具自己支持mysql,oracle,sqlLite,PostgreSql數據庫,所以而也提供了在不一樣數據庫之間遷移數據的功能。oracle

遷移以前,先確保你創建了這兩個數據庫的connection。選擇Tools/DataTransfer。app

\

選擇源數據庫,選擇你要遷的表,目標數據庫。
<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141101/2014110109051329.png" alt="\">工具

選擇周邊。學習

\

遷移過程,左上角爲進度。測試

 

-----------------------------------------------------------------------------------------------------------------------
二.使用MySQL Migration Toolkit快速將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不錯,現將步驟寫出跟你們分享
1、安裝MySQL Migration Toolkit
先到http://dev.mysql.com/downloads/gui-tools/5.0.html下載MySQL GUI Tools(其實就是一個MySQL管理工具),其中就包括MySQL Migration Toolkit工具,一路next安裝完畢
2、第一次運行須要加載ojdbc14.jar包

運行MySQL Migration Toolkit,一路「Next」到「Source Database」,在Database System中選擇Oracle Database Server,若是第一次使用會告之要求加載驅動程序ojdbc14.jar,而後從新啓動MySQL Migration Toolkit。ui

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」繼續。

11、一路「next」來到Data Mapping Options,選擇本地磁盤儲存數據表中的數據,按「Next」繼續。

12、通過Bulk Data Transfer建立全部表中的數據完畢,按「Next」繼續。

十3、來到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的數據了,固然這數值能夠根據須要做調整。
十4、使用MySQL Workbench導入數據
點擊Data Import/Restore先導入一次表結構,再導入一次表數據,完成數據庫遷移
 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
三. 先把oracle表中的數據另存在excel表中,再把excel表中數據導入到mysql中

這裏要將oracle中表eventlogs的數據導入到mysql中。步驟以下:

    一、在PL/SQL中用select * 搜索到eventlogs表的全部數據,而後右鍵點擊"Copy to Excel";以下圖所示:

          

     二、將數據保存爲excel表,並重名;以下圖:

         

    三、打開mysql的可視化工具,我這裏是Navicat,選擇表,點擊導入嚮導;以下圖所示:

 

    四、選擇上圖中"導入類型"的"execel文件",而後點擊"下一步";以下圖所示:

        

    五、接下來會讓你選擇文件,選擇你已經保存的excel文件,並選擇「SQL Result」,以下圖所示:

 

    六、而後一直點下一步直至步驟6,填充目標欄位。第一個欄位通常是空的,根據你的須要填。我這裏填爲"_id",並設爲主鍵。以下圖所示:

   七、而後一直點擊下一步,最後一步點擊開始。會出現一個「sql result」的表,重命名爲你想要的表便可。如圖所示:

     數據已經導入了。其中表中數據類型若不合你的要求,你能夠再設計表。

 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
四,手動導入Navicat
 
這多是最蠢最低效的辦法,但也是最靠譜的辦法。在以上3中方法都不適用的前提下,一張一張表本身在navicat for mysql裏建。或者,從oracle裏導出的.sql文件不能在navicat裏運行sql文件來導入,由於裏面有些字段屬性不適用於mysql,oracle與mysql語法和字段屬性仍是有區別的,因此要把建立表sql語句一一修改後,再在navicat裏運行來建立表。
相關文章
相關標籤/搜索