Oracle expdp/impdp 從高版本 到 低版本 示例
公司的一個測試庫原來的版本是Oracle 11gR2的。 有些語法10g的有些出入,老大說把測試庫重建一下,用10g的版本。
雖說可以停機,資料量也不大,不過白天研發的同事要使用測試庫,所以只能晚上加班搞。 打算使用資料泵expdp/impdp 來做。 因為從高版本到低版本導需要加上version 引數,之前還沒有測試過。 用這個機會測試一下。
關於Version 的更多說明,參考:
Export/Import DataPump Parameter VERSION - Compatibility of Data Pump Between Different Oracle Versions [Video] [ID 553337.1] |
資料泵的更多示例,參考我的Blog:
Oracle expdp/impdp 使用示例
http://space.itpub.net/15880878/viewspace-720017
步驟如下:
1. 把10g版本的庫裝好,並建立一個例項
2. 檢視原使用者物件總數
SQL> select count(*) from dba_objects where owner in ('WANGOU','SUP','QISHUN');
這樣導完之後,就可以比較一下。
3. 建立目錄,並用expdp匯出資料
SQL>create directory backup as '/u01/backup';
#expdp /'/ as sysdba/' directory=backup full=y dumpfile=wgfullexp.dmp logfile=fullexp.log version=10.2.0.1 ;
-- 注意引數,我是從11gR2的庫導的,我要匯入10g的庫,通過version指定版本資訊。
4. 用Toad 匯出原測試庫 表空間使用者等指令碼。
5. 在新的測試庫用之前匯出的指令碼把表空間建立好。
6. 建立dir,用impdp 匯入資料
SQL>create directory backup as '/u01/backup';
#impdp /'/ as sysdba/' directory=backup full=y dumpfile=wgfullexp.dmp logfile=fullimp.log;
impdp 沒有成功,最後的錯誤如下:
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
ORA-39112: Dependent object type TABLE_STATISTICS skipped, base object type TABLE:"ORDDATA"."ORDDCM_PREFS_LOOKUP" creation failed
ORA-39112: Dependent object type TABLE_STATISTICS skipped, base object type TABLE:"ORDDATA"."ORDDCM_PREFS_LOOKUP" creation failed
ORA-39112: Dependent object type TABLE_STATISTICS skipped, base object type TABLE:"ORDDATA"."ORDDCM_PREFS_LOOKUP" creation failed
ORA-39125: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS while calling DBMS_METADATA.CONVERT [TABLE_STATISTICS]
ORA-06502: PL/SQL: numeric or value error
LPX-00225: end-element tag "HIST_GRAM_LIST_ITEM" does not match start-element tag "EPVALUE"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.KUPW$WORKER", line 6241
----- PL/SQL Call Stack -----
object line object
handle number name
0x4de6dba8 14916 package body SYS.KUPW$WORKER
0x4de6dba8 6300 package body SYS.KUPW$WORKER
0x4de6dba8 12279 package body SYS.KUPW$WORKER
0x4de6dba8 3279 package body SYS.KUPW$WORKER
0x4de6dba8 6889 package body SYS.KUPW$WORKER
0x4de6dba8 1262 package body SYS.KUPW$WORKER
0x4de62824 2 anonymous block
Job "SYS"."SYS_IMPORT_FULL_01" stopped due to fatal error at 20:58:03#o b0d5j2u18982013
因為這裡的使用者比較多,同事給我的是3個使用者,但我連上去看了一下,明顯不止三個使用者。 所以就不想按使用者導,直接full =y 全庫導了。
impdp 的時候,如果使用者不存在會自動建立。 所以在我impdp的時候,我沒有去建立使用者。 不過如果是生產環境,還是按部就班的來。 先建好表空間,使用者,按使用者來導。
imdp失敗了,但之前導的表,索引等物件匯入過了。 用:
SQL> select count(*) from dba_objects where owner in ('WANGOU','SUP','QISHUN');
檢視了新測試庫上這3個使用者的物件,比原庫少了20個。
把2個庫物件的詳細資料匯出到txt,用UC 比較了一下,少的20個物件是觸發器。 用Toad 在原庫上把這20個觸發器的sql匯出來,在新庫上執行一下。最後檢查了一下。 兩遍物件一致。
因為impdp 在最後統計資訊那塊報錯, 所以檢視了一下統計資訊,已經匯入了。 讓開發的同事測試了一下,沒有問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15880878/viewspace-720018/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 低版本匯入高版本按使用者expdp/impdpOracle
- 資料泵(expdp,impdp)高版本匯入低版本操作例項
- Oracle expdp/impdp 使用示例Oracle
- impdp/expdp 示例
- [Sqlite] 資料遷移備份--從低版本到高版本SQLite
- IMPDP 高版本DUMP檔案匯入低版本資料庫資料庫
- oracle expdp and impdpOracle
- oracle expdp/impdp用法Oracle
- 高版本到低版本的gg配置參考
- ORACLE expdp/impdp詳解Oracle
- Oracle 資料遷移(從Oracle11G高版本遷移到Oracle10G低版本)Oracle
- oracle expdp和impdp使用例子Oracle
- ORACLE 10G expdp/impdpOracle 10g
- Oracle10g expdp & impdpOracle
- pip包 高版本轉低版本 或者直接pip低版本包
- oracle資料庫的impdp,expdpOracle資料庫
- oracle EXPDP/IMPDP 常用命令Oracle
- Oracle 邏輯備份 expdp/impdpOracle
- expdp&impdp For Oracle 10GOracle 10g
- oracle匯入匯出之expdp/impdpOracle
- Oracle expdp impdp dump引數介紹Oracle
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- ORACLE EXPDP IMPDP 中停止和啟動Oracle
- oracle 10g imp/exp IMPDP/EXPDPOracle 10g
- oracle實驗記錄 (expdp/impdp使用)Oracle
- SQL Server資料庫從高版本遷移到低版本的解決方案SQLServer資料庫
- 解決MYSQL資料從高版本匯入低版本的問題(轉)MySql
- 【EXPDP/IMPDP】使用 EXPDP/IMPDP工具“模糊”匯出和匯入
- oracle 10g expdp-impdp解讀Oracle 10g
- oracle實驗記錄 (transport tablespace(EXPDP/IMPDP))Oracle
- Expdp Impdp詳解
- expdp/impdp跨版本升級遷移問題總結
- expdp/impdp 使用version引數跨版本資料遷移
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- EXPDP/IMPDP工具的使用
- expdp/impdp 用法詳解
- expdp/impdp操作例項
- expdp, impdp characteristic 特性--索引索引