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,搞定。。測試資料。。