oracle匯入匯出之expdp/impdp
資料泵裡匯入匯出有幾個常用的引數,記錄如下:
parallel: 指定並行度,提高匯入匯出的效率
cluster: 該引數預設為y。為n時,表示僅在一個資料庫例項上進行匯入/匯出操作。主要是在RAC環境下,會使用此引數。
compression:設定compression為all時,表示開啟轉儲檔案壓縮功能。注意,該功能要求compatible初始化引數至少為11.0.0
full:設定full=y,表示為完全模式匯出,包含所有的使用者業務資料。
reuse_dumpfiles:設定為y時,表示如果存在同名的泵出檔案時,會對其進行覆蓋。
nologfile:為y時,表示不生成日誌檔案。
tablespaces:匯出指定的表空間。
schemas:匯出指定的使用者模式。
tables:匯出指定表。
query:匯出符合刪選條件的行。
flashback_time或者flashback_scn:匯出與閃回時間點查詢相一致的資料。
exclude:排除指定的物件
content:有三個值:all,data only,metadata_only。為all時,匯出物件定義以及所有的資料;為data only時,只匯出物件資料;為metadata_only時,只匯出物件定義。
以下的幾個引數是在匯入時被用到的:
table_exists_action:該引數有幾個值,分別是skip(預設值),append,truncate,replace。
(skip:表示匯入的表如果已經存在,會直接跳過。如果該表的表結構發生改變,也一樣跳過,不會報錯。
append:表示匯入的表如果已經存在,就將資料直接插入。當然如果該表上有唯一性約束條件存在時,會報錯並匯入失敗。
truncate:表示匯入的表如果已經存在,就將原表中的資料清空,然後重新匯入。如果有外來鍵約束,則報錯,並匯入失敗。
replace:表示匯入的表如果已經存在,就先將表以及一切依賴該表的物件全部刪除,然後重建表。至於依賴該表的物件是否也會被重建,取決於匯入的資料包裡有沒有這個物件,比如表上的索引等。
如果被匯入的表的結構發生了變化,那麼用append方式和truncate方式時,均會報錯ORA-00600。)
remap_table:匯入時,更換資料包中的表名。
remap_schema:匯入時,更換資料包中的模式名。
示例:
impdp system/oracle tables=hr.employees dumfile=EX%U.DMP remap_table=employees:employees_other exclude=constraint,ref_constraint
將匯入的表employees重新命名為employees_other,同時就算匯入的檔案中有employees表的主鍵、唯一、檢查和外來鍵約束,也不用匯入。因為如果有約束和現有約束同名,也會導致employees表建立失敗。
注意:exclude引數無法排除非空約束。
impdp system/oracle tables=hr.employees dumfile=EX%U.DMP remap_schema=HR:HR2
將匯入檔案裡的表hr.employees匯入到HR2模式下。注意:這個HR2必須已經提前存在。
impdp system/oracle schema=hr dumfile=EX%U.DMP remap_schema=HR:HR2
將匯入檔案中所有屬於HR模式的物件在匯入時切換至HR2模式。注意:這裡HR2模式資料庫會自動建立。但是這裡面的匯入檔案必須是在匯出時使用full=y或者schema=hr語句生成的。
expdp/impdp的執行方式:
除了常見的在命令列介面直接輸入expdp/impdp語句以外,還可以利用parfile引數:
[root@single2 test]#cat exp_data.txt
userid='/ as sysdba'
DIRECTORY=DUMP
DUMPFILE=EXP_%u.dmp
LOGFILE=EXP_data.log
TABLES=(
hr.employees
)
[root@single2 test]#$nohup expdp parfile=exp_data.txt &
exclude=STATISTICS,表示排除統計資訊。如果沒有統計資訊,會導致SQL執行計劃不對。可以手動重新收集統計資訊。
parallel: 指定並行度,提高匯入匯出的效率
cluster: 該引數預設為y。為n時,表示僅在一個資料庫例項上進行匯入/匯出操作。主要是在RAC環境下,會使用此引數。
compression:設定compression為all時,表示開啟轉儲檔案壓縮功能。注意,該功能要求compatible初始化引數至少為11.0.0
full:設定full=y,表示為完全模式匯出,包含所有的使用者業務資料。
reuse_dumpfiles:設定為y時,表示如果存在同名的泵出檔案時,會對其進行覆蓋。
nologfile:為y時,表示不生成日誌檔案。
tablespaces:匯出指定的表空間。
schemas:匯出指定的使用者模式。
tables:匯出指定表。
query:匯出符合刪選條件的行。
flashback_time或者flashback_scn:匯出與閃回時間點查詢相一致的資料。
exclude:排除指定的物件
content:有三個值:all,data only,metadata_only。為all時,匯出物件定義以及所有的資料;為data only時,只匯出物件資料;為metadata_only時,只匯出物件定義。
以下的幾個引數是在匯入時被用到的:
table_exists_action:該引數有幾個值,分別是skip(預設值),append,truncate,replace。
(skip:表示匯入的表如果已經存在,會直接跳過。如果該表的表結構發生改變,也一樣跳過,不會報錯。
append:表示匯入的表如果已經存在,就將資料直接插入。當然如果該表上有唯一性約束條件存在時,會報錯並匯入失敗。
truncate:表示匯入的表如果已經存在,就將原表中的資料清空,然後重新匯入。如果有外來鍵約束,則報錯,並匯入失敗。
replace:表示匯入的表如果已經存在,就先將表以及一切依賴該表的物件全部刪除,然後重建表。至於依賴該表的物件是否也會被重建,取決於匯入的資料包裡有沒有這個物件,比如表上的索引等。
如果被匯入的表的結構發生了變化,那麼用append方式和truncate方式時,均會報錯ORA-00600。)
remap_table:匯入時,更換資料包中的表名。
remap_schema:匯入時,更換資料包中的模式名。
示例:
impdp system/oracle tables=hr.employees dumfile=EX%U.DMP remap_table=employees:employees_other exclude=constraint,ref_constraint
將匯入的表employees重新命名為employees_other,同時就算匯入的檔案中有employees表的主鍵、唯一、檢查和外來鍵約束,也不用匯入。因為如果有約束和現有約束同名,也會導致employees表建立失敗。
注意:exclude引數無法排除非空約束。
impdp system/oracle tables=hr.employees dumfile=EX%U.DMP remap_schema=HR:HR2
將匯入檔案裡的表hr.employees匯入到HR2模式下。注意:這個HR2必須已經提前存在。
impdp system/oracle schema=hr dumfile=EX%U.DMP remap_schema=HR:HR2
將匯入檔案中所有屬於HR模式的物件在匯入時切換至HR2模式。注意:這裡HR2模式資料庫會自動建立。但是這裡面的匯入檔案必須是在匯出時使用full=y或者schema=hr語句生成的。
expdp/impdp的執行方式:
除了常見的在命令列介面直接輸入expdp/impdp語句以外,還可以利用parfile引數:
[root@single2 test]#cat exp_data.txt
userid='/ as sysdba'
DIRECTORY=DUMP
DUMPFILE=EXP_%u.dmp
LOGFILE=EXP_data.log
TABLES=(
hr.employees
)
[root@single2 test]#$nohup expdp parfile=exp_data.txt &
exclude=STATISTICS,表示排除統計資訊。如果沒有統計資訊,會導致SQL執行計劃不對。可以手動重新收集統計資訊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28497416/viewspace-2127933/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- 【EXPDP/IMPDP】使用 EXPDP/IMPDP工具“模糊”匯出和匯入
- expdp impdp只匯出匯入viewView
- expdp與impdp全庫匯出匯入
- Oracle 12c expdp和impdp匯出匯入表Oracle
- expdp與impdp全庫匯出匯入(二)
- Oracle expdp/impdp匯出匯入命令及資料庫備份Oracle資料庫
- Oracle expdp/impdp匯入匯出備份資料庫指令碼Oracle資料庫指令碼
- 資料庫泵(expdp/impdp)匯入匯出流程資料庫
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- expdp impdp 資料庫匯入匯出命令詳解資料庫
- expdp/impdp中匯出/匯入任務的管理和監控
- 通過EXPDP/IMPDP匯出匯入遠端資料倒本地
- oracle 10.2.0.4 expdp全庫匯出 和分使用者impdp匯入的記錄Oracle
- 使用EXPDP/IMPDP匯入匯出表中資料/後設資料測試
- oracle10g expdp資料泵的bug,按schema匯出,匯入impdp時無jobOracle
- Oracle 低版本匯入高版本按使用者expdp/impdpOracle
- oracle10g_11g expdp_impdp可以靈活匯出匯入特定物件型別procedure小記Oracle物件型別
- 針對資料泵匯出 (expdp) 和匯入 (impdp)工具效能降低問題的檢查表
- Oracle增量匯入匯出Oracle
- 【匯入匯出】Oracle 常用匯入匯出工具集錦Oracle
- Oracle 資料匯入匯出Oracle
- oracle排除表匯入匯出Oracle
- Oracle資料匯入匯出Oracle
- impdp 匯入 指令碼指令碼
- expdp 匯出指令碼指令碼
- Oracle - UTL_FILE包之BLOB匯入和匯出Oracle
- Oracle 12.1.0.2 impdp匯入慢診斷Oracle
- 【匯出匯入】匯出匯入 大物件物件
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- Oracle expdp資料泵遠端匯出Oracle
- 使用impdp network link 跳過expdp直接匯入資料
- EXP COMPRESS以及EXP/IMP EXPDP/IMPDP匯入表結構注意
- 【匯出匯入】IMPDP table_exists_action 引數的應用
- Oracle匯入(imp )與匯出(exp )Oracle
- 【ORACLE 匯入匯出】exp 錯誤Oracle
- ORACLE匯入匯出命令exp/impOracle
- 【oracle 匯入、匯出】escape 的作用。Oracle