impdp/expdp报错: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误

问题现象

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

posted @ 2024-08-07 11:50  东北小狐狸  阅读(282)  评论(0编辑  收藏  举报