在執行impdp遇到partition table,使用了參數 content=data_only,雖然有指定 parallel為8,但實際執行卻只有1個worker在動作
# cat impdp_dataonly_st.par userid=system/"password" directory=dmp dumpfile=expdp_orcl_%U.dmp logfile=impdp_dataonly_st.log parallel=8 tables=PE.PROC_LOG,PE.MSG_LOG,PE.MSG_LOG_DETAIL CONTENT=data_only
依 Oracle Doc ID 2098931.1,沒有產生parallel執行的原因,是import前就先建立了 partition table,後面才再匯入資料,分成了兩個import動作,才會沒產生parallel,需要用一次性動作建表與匯入的方式才能產生出parallel
# cat impdp_dataonly_st.par userid=system/"password" directory=dmp dumpfile=expdp_orcl_%U.dmp logfile=impdp_dataonly_st.log parallel=8 tables=PE.PROC_LOG,PE.MSG_LOG,PE.MSG_LOG_DETAIL
隨後將匯入的表先刪除後,重新去import,其中的動作包含了建立partition table和import data,實際上還是沒產生 parallel執行,依然是1個worker在動作
隨後查了查網路資料,發現 datapump有一個參數可以使用 ACCESS_METHOD,參數內容的值分為 AUTOMATIC | DIRECT_PATH | EXTERNAL_TABLE,預設為 AUTOMATIC,這裡使用 DIRECT_PATH,其解釋這個參數值是忽略掉SQL驗證這層,直接將資料insert到目標
# cat impdp_dataonly_st.par userid=system/"password" directory=dmp dumpfile=expdp_orcl_%U.dmp logfile=impdp_dataonly_st.log parallel=8 tables=PE.PROC_LOG,PE.MSG_LOG,PE.MSG_LOG_DETAIL ACCESS_METHOD=DIRECT_PATH
但官方解釋使用此方式,可能會造成ORA-31696的錯誤發生
實際操作上,確時會因為是匯入 partition table,直接跳出ORA-31696的錯誤
後來又查了Oracle Support,在一篇 Doc ID 1327029.1 也有人遇到類似Partition table too large 匯入的問題,隨後官方有給出一些解決方式
其中一個方法就是在import時加上 DATA_OPTIONS=DISABLE_APPEND_HINT,經測試後才解決匯入慢或遇到partition時,只剩1個worker在動作的問題
# cat impdp_dataonly_st.par userid=system/"password" directory=dmp dumpfile=expdp_orcl_%U.dmp logfile=impdp_dataonly_st.log parallel=8 tables=PE.PROC_LOG,PE.MSG_LOG,PE.MSG_LOG_DETAIL DATA_OPTIONS=DISABLE_APPEND_HINT
官網說明這參數的用意:This will cause the loads to conventional load instead of direct load, but it will allow multiple import jobs to load the same table simultaneously.
參考來源:
Slow DataPump Import (Impdp) Performance using Parallel Option with Pre-created Partitioned Tables (Doc ID 2098931.1)
What Happens To Undo Tablespace During DataPump Import And How To Fix It
DataPump Import (IMPDP) Can Fail With Error ORA-31696 If ACCESS_METHOD=DIRECT_PATH Is Manually Specified (Doc ID 469439.1)
DataPump Performance: Impdp Slow When Importing Partitioned Table (Doc ID 1327029.1)
0 留言