問題現象
Windows伺服器匯入/匯出Oracle 11g資料庫出現如下報錯提示,輸出的日誌檔案從報錯位置往後不再輸出。
ORA-39064: 無法寫入日誌檔案
ORA-29285: 檔案寫入錯誤
問題原因
原因是客戶端環境變數NLS_LANG與資料庫字符集不一致,而資料泵在寫日誌檔案的時候使用的是————資料庫字符集,寫入到某些字元,如中文字元時兩種字符集相容,導致日誌輸出錯誤。
解決方法
將客戶端字符集變數設定與資料庫字符集保持一致。
以下是修復步驟:
1、查詢資料庫字符集,這裡是 SIMPLIFIED CHINESE_CHINA.AL32UTF8
#檢視測試庫
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
2、Win+R執行,輸入regedit
開啟登錄檔管理器
登錄檔路徑:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1\NLS_LANG
發現當前NLS_LANG的值為 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
,需要改為 SIMPLIFIED CHINESE_CHINA.AL32UTF8