问题现象
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