2015-04-01 Created By BaoXinjian
一、摘要
PARFILE 可以把各種參數配置為一個文本鍵值形式的文件,該參數可以指定參數文件的位置。
Expdp命令可以調用Parfile文件,在Parfile里可以寫備份腳本,可以使用Query選項。
1. 如expdp.txt 內容如下:
USERID=orcldev/oracle directory=dackup_path dumpfile=orcldev_parfile.dmp logfile=orcldev_parfile.log TABLES='TAB_TEST' QUERY="WHERE TRAN_DATE=TO_DATE('2013-08-31','YYYY-MM-DD')"
執行方法:expdp parfile=expdp.txt 即可執行備份
使用parfile好處是使用query選項是不用使用轉義字符,如果將query參數放到外邊的話,需要將""進行轉義。
2. UNIX寫法:
expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log schemas=orcldev INCLUDE=TABLE:\"IN \(\'TEST_A\',\'TEST_B\'\)\" --在Unix系統執行是需要將單引號進行轉義操作,否則會報錯。
3. WINDOWS寫法:
expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile =2013.log schemas=orcldev INCLUDE=TABLE:"IN \('TEST_A','TEST_B')"
二、案例
案例: 通過在Par文件定義多張表匯總,導出和導入Dump文件
Step1. 創建Expdp的par文件gavin_dump_par_20150401.par
DIRECTORY=GAVIN_EXP_TMP DUMPFILE=gavin_dumpfile_20150401.dmp LOGFILE=gavin_dumpfile_exp_20150401.log TABLES=AP.AP_INVOICES_ALL, AP.AP_INVOICE_LINES_ALL, AP.AP_INVOICE_PAYMENTS_ALL
Step2. 在源端數據庫導入數據為dump文件
expdp / PARFILE=gavin_dump_par_20150401.par FLASHBACK_SCN=$(print "set pagesize 0 numwidth 30\nselect sys.dbms_flashback.get_system_change_number from dual;"|sqlplus -s /)
Step3. 在目標數據庫導入dump文件
imp / DIRECTORY=GAVIN_IMP_TMP dumpfile=gavin_dumpfile_20150401.dmp logfile=gavin_dumpfile_imp_20150401.dmp.log
Step4. 查看日志和數據庫表確認數據是否已經導入成功
三、案例
較為復雜的初傳輸定義,需要定義文件的大小,並行度,並通過ksh調用nohup多批量處理
//創建目錄 CREATE OR REPLACE DIRECTORY DUMPFILE AS ‘/u01/data/dump/exp/scripts’; //執行參數 vi GAVIN_DATA_PARAMETER.par DIRECTORY=dumpfile DUMPFILE=GAVIN_DATA_SEQNO_0%U.dump,GAVIN_DATA_SEQNO_1%U.dmp CONTEXT=ALL FILESIZE=2G PARALLEL=4 EXCLUDE=TRIGGER, FUNCTION, PACKAGE, PROCEDURE, SEQUNCEN, VIEW LOGFILE=GAVIN_DATA_EXPDP.log TABLES=AP.AP_INVOICES_ALL, AP.AP_LINES_ALL //並行執行 vi GAVIN_DATA_EXECUATE.ksh export basedir=/u01/data/dump/imp/scripts nohup expdp \'/ as sysdba\' PARFILE=$basedir/GAVIN_DATA_PARAMETER.par>/dev/null 2>&1 &
Thanks and Regards