ORACLE 11.2 RAC EXPDP ORA-31693: 表資料物件 ORA-31617: 無法開啟要寫入的轉儲檔案

聽海★藍心夢發表於2014-03-07

今天在ORACLE RAC上使用expdp的parallel引數時報錯。

OS環境:HP UNIX

資料庫版本:oracle 11.2.0.4.0  RAC

匯出指令碼如下:

expdp test02/test_1 tablespaces=test parallel=4 directory=expdp_dir dumpfile=TEST_20140307.dmp logfile=TEST_20140307.log

匯出時日誌中報錯資訊如下:

ORA-31693: 表資料物件 "TESET2"."SUM_ORDER_INFO":"P_201305" 無法載入/解除安裝並且被跳過, 錯誤如下:
ORA-31617: 無法開啟要寫入的轉儲檔案 "/backup/TEST_20140307.dmp"
ORA-19505: 無法識別檔案"/backup/TEST_20140307.dmp"
ORA-27037: 無法獲得檔案狀態
HPUX-ia64 Error: 2: No such file or directory
Additional information: 3

這個匯出指令碼是我之前到了n次的指令碼,之前也是在相同的伺服器,相同哦資料庫下匯出的,之前這麼做就是為了演練那天晚上的遷移,以防止出現異常情況。

唯一的區別就是這次我新增了一個引數:parallel=4,也許就是這個引數導致的。但是我之前在10g的資料庫上也使用過這個引數,當時非常的順利,為何11g就不行了呢。檢視oracle11g的官方文件:

Using PARALLEL During An Export In An Oracle RAC Environment

In an Oracle Real Application Clusters (Oracle RAC) environment, if an export operation has PARALLEL=1, then all Data Pump processes reside on the instance where the job is started. Therefore, the directory object can point to local storage for that instance.

If the export operation has PARALLEL set to a value greater than 1, then Data Pump processes can reside on instances other than the one where the job was started. Therefore, the directory object must point to shared storage that is accessible by all instances of the Oracle RAC.

看來是匯出檔案的目錄不是兩個節點共享的原因,/backup只在節點1上掛載,節點2上沒有。如果/backup在兩個節點共享,就不會出現這樣的錯誤。但是現在只能在單例項上操作。檢視expdp的help,發現有個引數cluster。這個引數可以控制是否採用多例項匯出。設定cluster=n後,即:

expdp test02/test_1 tablespaces=test parallel=4 cluster=n directory=expdp_dir dumpfile=TEST_20140307.dmp logfile=TEST_20140307.log

執行後匯出正常。沒有報錯!

 

在後面的匯入過程也同樣設定這個引數,匯入正常!問題解決。保證了在規定的時間內完成資料庫遷移。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-1103277/,如需轉載,請註明出處,否則將追究法律責任。

相關文章