Oracle數據庫備份/導入工具


  expdp和impdp常用於ORACLE數據庫的導入導出。

expdp導出數據庫

1、root用戶創建用於impdp/expdp導入導出的目錄;

# mkdir -p /home/dmpdata
# chown oracle:oinstall /home/dmpdata

2、切換到oracle用戶,dba用戶登錄創建邏輯目錄

sqlplus / as sysdba
SQL> create directory DMP_DATA_DIR as '/home/dmpdata'; #創建
SQL> select * from dba_directories;  #查看創建結果

說明:如果已經存在DMP_DATA_DIR目錄但是值不同,可先執行drop directory DMP_DATA_DIR;刪除重建。

3、給待導出數據庫用戶TEST賦予在指定目錄DMP_DATA_DIR的操作權限

SQL> grant read,write on directory DMP_DATA_DIR to TEST;

4、導出TEST數據庫

expdp system/oracle schemas=TEST dumpfile=TEST_20171020.dmp DIRECTORY=DMP_DATA_DIR logfile=expdp_TEST_20171020.log

5、檢查/home/dmpdata路徑下導出的dmp文件、expdp導出日志結果顯示successfully completed則表示導出成功,結束。

impdp導入數據庫

前提:預先創建好導入數據庫涉及的表空間。如果是大數據量導入,確保空間足夠。

方法一:不預先創建數據庫,impdp直接導入自動創建TEST2數據庫用戶,密碼為TEST數據庫密碼。也就是與舊的數據庫密碼一致。

impdp system/oracle remap_schema=TEST:TEST2 directory=DUMP_DATA_DIR dumpfile=expdp_TEST_20171020.dmp logfile=impdp_TEST2_20171020.log

方法二:預先創建數據庫,impdp導入待EXCLUDE=user參數,可以避免出現ORA-31684錯誤。

1、預先創建數據庫

SQL> create user test2 identified by test2;
SQL> grant dba,connect,resource to test2;
SQL> grant read,write on directory DMP_DATA_DIR to TEST2;

2、導入備份的數據庫

impdp system/oracle remap_schema=TEST:TEST2 EXCLUDE=user directory=DUMP_DATA_DIR dumpfile=expdp_TEST_20171020.dmp logfile=impdp_TEST2_20171020.log

說明:如果導入的表空間發生變化,可以使用remap_tablespace=old_tablespace:new_tablespace解決,類似remap_schema參數

基本設計思路

  參考impdp/expdp手工操作

使用方法

  1、下載代碼:exp_imp_oradb.sh

  2、登錄root用戶,創建/home/dmpdata目錄,並賦權限chown oracle:oinstall  /home/dmpdata

  3、上傳expimp_db.sh文件到oracle用戶的相關目錄下,可任意目錄。

  4、執行chmod +x exp_imp_oradb.sh賦予可執行權限。

  5、執行expimp_db.sh imp db1 [db2] 導入數據庫 或者expimp_db.sh exp db1 [db2] 導出數據庫

  說明:導入時數據庫的dmp文件名為expdp_${CURRENT_DATE}_${dbname}.log。就是中間的時間變量是當前日期,如果不是,手工修改再執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM