2016-04-28 173 views
0

我有一個任務將MySQL數據庫遷移到Oracle(它是我的要求)我嘗試使用SQL開發人員遷移,如下面的鏈接定義。MySQL到Oracle數據庫遷移

https://www.packtpub.com/books/content/migrating-mysql-table-using-oracle-sql-developer-15

由於DB是巨大的,約束不從MySQL正確複製到Oracle,我需要明確定義/修改/添加約束,這是費時(SQL開發人員將數據遷移從mysql到Oracle的300rec/min)&整個程序,視圖,功能都需要重新編寫。

  1. 如何確保數據已正確遷移?
  2. 這是一個正確的遷移方法嗎?
  3. 我是否應該轉移到任何有助於遷移的工具?如果是,請提供該工具..!
  4. 或者從MySQL遷移到Oracle是正確的。

在此先感謝。

+0

你使用了什麼版本的SQL Developer?對於想要進行離線移動的數據遷移 - 然後我們使用SQL * Loader或外部表來移動數據,速度比您在線數據移動時快得多。給我一個表/約束的例子,我可以看到它被帶到Oracle時發生了什麼。 – thatjeffsmith

+0

SQL開發者3.2.20.09。自2012年以來, – Aakeef

+0

得到了很多更新和錯誤修復。看看你是否無法獲得版本4.1.3 – thatjeffsmith

回答

1

沒有具體的答案,但一些基於我的移民經驗的一般想法。

我發現,通常有沒有一個工具,做整個遷移工作做好,並通過整個工作我的意思是:

  1. 快速
  2. 處理所有的數據類型,場景

這就是從Oracle到Oracle!

最後一個項目我們嘗試了Oracle Golden Gate,發現其中存在問題。

我們始終以混合方式結束了,就像有些事情:

  1. 提取所有DDL手動和預創建對象 - 有在stagndard工具提取DDL時混淆他們的弱點,例如我們發現10g expdp並沒有很好地處理一些古怪的PLSQL,所以我們採取了自己的方式來提取它。

  2. 一些表與SQL加載程序,其他與GG,其他(罕見)與自定義提取和加載過程很好。我們有超過3500個表格,並確定了大約100個表現更好的SQLLoader而不是GG。當我說得更好時,我的意思是數據處理和移植速度。我們創建了不同的處理組,每個組都有不同的方法。

  3. 一旦我們有一個可行的整體混合方案,我們將調整,主要是將該任務分成並行進程(導出和導入)。

我所有的遷移都是大型項目,我們已經從一個Oracle系統/服務器轉移到另一個系統/服務器,目標是新版OS和Oracle。

所以,我會想象非Oracle和Oracle之間的遷移將會遇到更多的挑戰,並且可能不會像在SQL * Developer中點擊幾個按鈕那樣微不足道。

+0

謝謝@TenG的輸入。對於複製數據/對齊表結構,調整約束條件來說,這是一件非常頭痛的事情。 除Golden Gate之外,有沒有其他工具可以導入數據? – Aakeef

0

最近,我已成功將MySQL數據庫遷移到Oracle數據庫。下面是具體步驟:

操作系統:桌面Ubuntu的本地和桌面Ubuntu的亞馬遜AWS

請注意:這裏我使用AWS的桌面Ubuntu的服務器,因爲我的MySQL 數據庫是相當大。在我的情況下,有800個表格,200個視圖, 過程,觸發器和函數。數據庫的總大小几乎是 20GB。在小數據庫的情況下,我會建議使用本地Ubuntu服務器。

使用的工具: SQL Developer中的vncserver,遠程桌面客戶端,JAVA 8,第三方MySQL JDBC驅動程序

1.設置EC2 Ubuntu桌面服務器:https://www.youtube.com/watch?v=ljvgwmJCUjw

2。在#1上安裝SQL Developer

命令和apt-get安裝的SQLDeveloper包的debhelper的OpenJDK-7-jdk的
的OpenJDK-7的JRE的IcedTea-7-插件

  • 現在,所有你需要做的是運行命令(你可能有一個 不同版本)

化妝的SQLDeveloper封裝sqldeveloper-4.1.3.20.78-no-jre.zip

這將生成,您可以使用安裝SQL開發Debian軟件包。

  • 現在使用命令(你的deb 可能有不同的版本太多)

須藤dpkg -i來sqldeveloper_4.1.3.20.78 + 0.2.4-1_all安裝所產生的.deb軟件包。DEB

  • 就我而言,我已經使用的Java 8

3.一旦你與你的SQL Developer安裝完成對新創建的EC2實例與vncserver的,那麼所有你需要做的是在你的ubuntu本地機器上默認可用遠程桌面客戶端連接到那個ec2實例。

  • 使用IP:1用戶名/密碼設置vncserver的在#1 enter image description here
  • 你可以看到遠程EC2 Ubuntu桌面服務器。如果要在遠程服務器中進行選項卡簽名,則必須從遠程桌面工具中獲取鍵盤輸入。
  • 一旦您連接到遠程客戶端,從終端或瀏覽器打開SQL Developer。雖然下面由 提供的遷移步驟:

的SQLDeveloper

請注意ORAC他們將要求目標數據庫連接,即oracle 數據庫連接。這不是您的MySQL數據庫將被遷移的數據庫。相反,此數據庫連接將使用 進行遷移過程。 您的數據庫連接用戶 必須具有用戶和數據庫創建權限。一旦你的連接 具有用戶創建權限,那麼遷移過程會自動在Oracle數據庫中創建相應的數據庫用戶 [如果MySQL數據庫中有mysql_test_db,則同樣會在Oracle數據庫中創建mysql_test_db]。