記一次生產數據庫Oracle數據泵導出報ORA
瀏覽量: 次 發布日期:2023-10-06 23:15:20
記一次生產數據庫Oracle數據泵導出報ORA
先說一下背景,最近在對某個RAC數據庫做瘦身,需要對歷史數據做遷移,當在RAC數據庫執行EXPDP并行導出時出現了這個錯誤信息--ORA-31617,下面記錄下解決的整體思路。
導出的命令如下:
expdp rfuser/"xxx" directory=dp_hwb dumpfile=TAB_SP_OTMSHIPMENT.dmp LOGFILE=TAB_SP_OTMSHIPMENT.log TABLES=TAB_SP_OTMSHIPMENT QUERY=TAB_SP_OTMSHIPMENT:\"WHERE INSERT_TIME\<= TO_DATE\(\'20181230 00:00:00\',\'yyyymmdd hh24:mi:ss\'\)\" exclude=statistics parallel=4
從提示看一開始以為是權限問題,但是重新授權后還是有這個報錯。查了下資料才發現是:
數據泵的并行度設置為4,同時向4個DUMPFILE中寫入數據。在寫入時出現ORA-31693、ORA-29913和ORA-31617錯誤。
這里發現對于RAC環境而言,Oracle會嘗試將并行導出放到兩個節點上,而由于DIRECTORY是本地磁盤,且在另外一個節點上沒有建立同樣的目錄,因此打開文件報錯的信息。宿遷數據恢復
那么如果想要使用RAC上的并行導出,確保相同的目錄在兩個節點上同時存在。如果只想在一個節點上執行數據泵的導出那么就不要使用并行方式。
陸家嘴數據恢復去掉并行參數測試:
expdp rfuser/"xxx" directory=dp_hwb dumpfile=TAB_SP_OTMSHIPMENT.dmp LOGFILE=TAB_SP_OTMSHIPMENT.log TABLES=TAB_SP_OTMSHIPMENT QUERY=TAB_SP_OTMSHIPMENT:\"WHERE INSERT_TIME\<= TO_DATE\(\'20181230 00:00:00\',\'yyyymmdd hh24:mi:ss\'\)\" exclude=statistics
可以看到成功導出來了。
這里主要提個醒,parallel雖然能加快速度,但在有些場景還是得慎用的。鎮江數據恢復后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~