1. 程式人生 > >db2 遷移 oracle的一次經歷

db2 遷移 oracle的一次經歷

最近朋友給了個活,將系統的db2轉成Oracle,不大也不小,但之前沒做過。。驚訝

具體情況是,表有900多張,儲存過程70多,檢視130多,函式和其他若干。。。。。。。。至於需要移植的資料量,我只知道要全量,具體多大。。。。百萬條應該有吧。

那咱直接就向度娘伸手了。。。羨慕。。。度娘是偉大的。。。用她那甘甜的...一直哺育著我們。。

網上各種db2轉oracle的做法看的眼花繚亂。。

      有寫程式實現的。具體沒看過內容,應該是JDBC 分別連結DB2/ORACLE 獲取表資訊,再建立,遷移吧。。。

      有db2move做取import檔案,手工改DDL語句,然後再oracle建立表,再將DB2資料匯出,PL/SQL ODBC匯入的。

      等等....

      其中最中意的應該是使用WithData的  Db2ToOracle 吧 ,之前聽說過,貌似見別人用過OracleToDb2,挺方便的。

      網上找了下。下了個最新的試用版,選擇表直接匯入,表和資料直接建立,挺好,只是試用版不支援大資料量啊。。。大哭,只是給你玩玩而已。。

      果斷,找破解啊/找license啊      可惜沒找到。把1.1---2.2 十來個版本都找了一遍。。木有。。

      那就買個license吧,以後會用到,也不貴。但,尼瑪要不要這麼坑。。。他們不支援中國卡支付。。。

       好吧,再找其他工具。。。

       之後找到了Oracle 提供的工具 SQL developer  ,看了下介紹覺得還行,可以自定義對照欄位,自動匯入,得了,就它吧,不想找了。。

在這裡記錄下使用體驗吧

        DB2工具:DB2 V9.7、SqlDbx
      ORACLE 工具:ORACLE 11g、PL/SQL Developer
      資料庫轉換工具: SQL Developer
      JDK:轉換工具需要,JDK1.8
      第三方JDBC驅動:db2java.jar、db2jcc.jar、db2jcc_license_cu.jar 

        工具使用挺簡單的,就不記錄了,記錄下遇到的問題吧

1、遷移時,DB2會在ORACLE裡面自動建立使用者有多個,不需要的可以刪除。
2、儲存過程不會匯入
3、函式不會自動轉換
4、檢視會自動轉換,但是如果檢視呼叫了函式,或者儲存過程,匯入時會失敗


5、移植專案時,專案名稱不什麼的不要太長,太長會失敗
6、資料轉換時,注意噁心的DECIMAL,會自動轉換成NUMBER。DB2 DECIMAL(15,2) 裡面存的是無小數,但是轉成NUMBER(15,2) 會帶小數點
7、仔細看移植專案日誌,發現有報錯的根據錯誤內容處理

先在Oracle 建立了與DB2待匯入相同的使用者,並且使用者名稱、密碼都大寫,手動建立建立了函式,再從DB2匯入表、資料、檢視,都沒遇到問題。

手工建立了個需要的使用者、建立儲存過程,然後expdp導過來的使用者,再impdp到新建的使用者中。。刪除原來的。。。OK,搞定。。測試資料。。