眾所周知,我們從oracle高版本遷移資料庫到oracle低版本,是一件不太容易的事情。如果直接使用sql developer工具,可能無法完全遷移成功(中間或多或少會出現錯誤)。
exp,imp 對於同版本的oracle資料複本備份適用,若是不同版本的oracle資料複製,特被是從高版本備份資料到低版本時候,使用exp,imp有可能出現無法完全還原資料的情況,我們利用oracle內建的工具expdp和impdp,可以輕鬆幫我們實現。我們以oracle 11g遷移資料庫pms到oracle 10g中為例。
從oracle11g匯出備份:
expdp USERID='sys/sysadmin@orcl as sysdba' schemas=PMS dumpfile=pms_emp.dmp directory=DATA_PUMP_DIR version=10.2.0.1.0
schemas為來源資料庫方案,dumpfile為備份檔案名,directory為備份檔案存放目錄,DATA_PUMP_DIR為oracle預設的存放目錄,預設為ORACLE_HOME\admin\orcl\dpdump目錄,version為目標資料庫版本。
從oracle10g匯入(還原)備份:
還原到同一方案(schema=PMS):
impdp userid='sys/sysadmin@orcl as sysdba' schemas=PMS directory=DATA_PUMP_DIR dumpfile=PMS_EMP.DMP logfile=export.logversion=10.2.0.1.0
還原到不同方案(schema=PMS_CHRIS):
impdp userid='sys/sysadmin@orcl as sysdba' directory=DATA_PUMP_DIR dumpfile=PMS_EMP.DMP logfile=export.logversion=10.2.0.1.0 REMAP_SCHEMA=PMS:PMS_CHRIS
logfile為匯出備份時所產生的log名。其餘解釋與上同。
這種方式進行的資料庫遷移,一般情況下資料庫還原的比較完整,不容易出現奇怪的錯誤。