侧边栏壁纸
博主头像
与晚风述往事博主等级

万般皆下品,唯有读书高。

  • 累计撰写 149 篇文章
  • 累计创建 29 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

Oracle ORA-39064:无法写入日志文件

与晚风述往事
2022-07-04 / 0 评论 / 0 点赞 / 98 阅读 / 451 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-08-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

错误信息

【汉】ORA-39064:无法写入日志文件
【英】ORA-39064:unable to write to the log file

今天在Windows操作系统上的Oracle数据库使用Data Pump(数据泵)导出用户数据时,看到日志中有一个报错,日志文件中的内容被截断,但控制台输出正常。于是调整了cmd窗口的缓冲区高度后,重新导出了一次,并将其控制台内容复制到一个临时文件中,检查日志信息,看到以下错误:
image

版本

Oracle 11.2.0.1

参考:https://blog.51cto.com/u_14036245/4373797

Oracle官方文档提到,在多字节字符集环境中,如果客户端的NLS_LANG变量与数据库中的字符集配置的不一致,就可能会在使用Data Pump(数据泵)导出导入时,遇到ORA-39064。

由于数据泵的特性,我们肯定是排查数据库服务器的客户端字符集和数据库服务器字符集参数配置的是否一致。我这里的Oracle是安装在Windows操作系统中的,所以查看注册表的【HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1\NLS_LANG】变量中的值和数据库服务器的字符集。

经过简单的排查后,发现我的数据库服务器的字符集是AL32UTF8,但客户端字符集是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,两个字符集不同导致dmp导出报错了,将客户端字符集修改成和服务器端一致就行了。

我这里将其修改为“AMERICAN_AMERICA.AL32UTF8”,然后重新执行Data Pump,就可以正常写入日志文件了。

0

评论区