1. 程式人生 > 其它 >Expdp使用version引數時,報ORA-39373

Expdp使用version引數時,報ORA-39373

某天晚上,同事在使用資料泵進行資料遷移的過程中遇到點問題,簡要記錄之。

1、概述

同事需要將一套19C資料庫中的資料遷移到COMPATIBLE=12.1.0的資料庫中,在使用資料泵匯出的命令中添加了VERSION=12.1.0選項。在匯出的日誌中有幾條ORA-39373報錯資訊。具體日誌如下所示:

ORA-39373: cannot export SYSTEM_GRANT: ….. to version 12.1.0 due to long identifiers

ORA-39373: cannot export SYSTEM_GRANT: ….. to version 12.1.0 due to long identifiers

ORA-39373: cannot export INDEX_STATISTICS to version 12.1.0 due to long identifiers

2、從報錯的資訊可以看出,由於指定了匯出的版本(VERSION=12.1.0),而一些識別符號太長,所以無法匯出,SYSTEM_GRANT這個關鍵字,看樣子是系統許可權這部分的內容;INDEX_STATISTICS應該是索引的統計資訊。

3、同事擔心這個報錯是否會導致遷移的資料不一致,這些報錯其實可以在資料遷移後手動處理,也不會造成業務資料的不一致。資料遷移完成後,對比兩個庫中業務使用者的系統許可權部分,檢視目標端的業務使用者缺少哪些系統許可權,手動賦予這些系統許可權即可。而索引的統計資訊,這本來就是需要在資料遷移完成後,手動重新收集的。

4、這個問題在MOS文章:12.2 DataPump Export (EXPDP) Using a Lower Export Client Fails Due To ORA-39373 (Doc ID 2369249.1)中也有說明(In 12.2 Oracle database, the maximum length of identifiers is increased to 128 bytes for most identifiers, up from 30 bytes in previous releases.)。MOS中的解決方案是對超過30個字元的資料物件進行重新命名,然後重新匯出。