1. 程式人生 > >Oracle高版本資料匯入低版本

Oracle高版本資料匯入低版本

背景:
本機plsqldev連線生產和測試環境,生產上的oracle版本比測試上的oracle版本高,
導致從生產上expdp出的dmp檔案無法匯入測試上的oracle。

解決:
一、先從高版本oracle中匯出dmp檔案
1、"開始"中輸入sqlplus,然後使用者/密碼登入,
   SQL> create directory expdir as 'f:/20150706_data';
2、SQL> grant read,write on directory expdir to public;
3、exit;退出
4、C:\Users\lenovo>
   expdp esp/[email protected]

schemas=esp directory=expdir dumpfile=expdp.dmp version=10.2.0.2.0
注意點:--version=10.2.0.2.0 以較低版本匯出

二、再將dmp檔案匯入到低版本oracle
1、"開始"中輸入sqlplus,然後使用者名稱/密碼登入
   SQL> create directory db_bak as 'f:\data';
2、exit;
3、C:\Users\lenovo>
   impdp esp/Haieresp schemas=esp directory=db_bak dumpfile=expesp.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER;


如果匯入時使用者名稱與匯出使用者名稱不同
如果想匯入的使用者已經存在:
1. 匯出使用者 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 匯入使用者 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp 
REMAP_SCHEMA=user1:user2 EXCLUDE=USER

注意點:--impdp匯入dmp檔案時,如果資料不同了schemas=esp指定資料,如果使用者不同了REMAP_SCHEMA=user1:user2 EXCLUDE=USER指定使用者