# Oracle 資料庫使用 EXPDP 與 IMPDP 備份與還原 ###### tags: `資料庫` 在一台可以連到Oracle資料庫的PC操作。 要有DBA的帳號與密碼。 開啟DOS命令提示字元。 評估全部匯出的匯出檔案大小。 輸入指令: ``` EXPDP dba_account/dba_pwd@service_name FULL=Y ESTIMATE_ONLY=Y ``` ![](https://i.imgur.com/gSVqs8s.png) ![](https://i.imgur.com/AqWZF4q.png) 實際匯出大小可能只有評估結果的60%。所以只要評估大小不會大到無法複製,就可以使用全部匯出。 匯出步驟: 先確認目的資料庫與來源資料庫的檔案位置相同,作業上會簡單許多。 例如:來源資料庫檔案 ![](https://i.imgur.com/S2VmpJf.png) 目的資料庫檔案也要相同,但是如果安裝的時候,Oracle目錄就不一樣,那麼也可以在備份電腦上,先建立相同的資料夾。 備份指令: ``` EXPDP dba_account/dba_pwd@service_name FULL=Y DUMPFILE=FULL.DMP ``` ![](https://i.imgur.com/EXPe8TD.png) 備份成功之後,FULL.DMP會放在Oracle資料庫所在的電腦(不是下指令的電腦): ![](https://i.imgur.com/jD5eGtN.png) 如果不在,請連上ORACLE下指令: ``` SELECT * FROM ALL_DIRECTORIES ``` ![](https://i.imgur.com/uoGftGr.png) DATA_PUMP_DIR的DIRECTORY_PATH就是dump檔的位置。 把FULL.DMP複製到備份電腦的DATA_PUMP_DIR的DIRECTORY_PATH,再下指令還原資料庫: 還原資料庫時,目的資料庫可能是剛安裝好的資料庫,應該沒有來源資料庫的東西,包括USER,所以DBA帳號應該是使用SYS或SYSTEM,密碼則是在安裝時設定。 還原指令: ``` IMPDP system/system_pwd@service_name FULL=Y DUMPFILE=FULL.DMP ``` ![](https://i.imgur.com/Al9B5VB.png) 檢查錯誤:EXPORT.LOG ![](https://i.imgur.com/Rv5AIJr.png) 檢查還原後的資料庫,基本上如果 TABLESPACE、SCHEMA、USER、TABLE、STORED PROCEDURE、PACKAGE、MATERIALIZED VIEW、SEQUENCE 都有還原,應該就沒問題了。