在数据库服务器端养成设置NLS_LANG和NLS_DATE_FORMAT环境变量的习惯

        今日凌晨3点左右同事打来电话说,他们在将一个单机版AIX平台的Oracle数据库迁移到相同平台相同版本的RAC数据库的时候,业务数据所有的中文变成了"?"号。迁移的方法是通过RMAN备份恢复。再查询原有的数据库所有中文也变成了"?"号。这就奇了怪了。迁移之前都还好好的咋就出了问题喃!
        首先能够确认的是原有数据库没动过,那么数据文件中的内容肯定没被破坏,也就是说出现乱码问题可能是配置上的问题。于是我第一反应想到了之前碰到过单实例数据库迁移到集群数据库日期处理上会有报错的情况,需要在节点服务器的oracle用户下的环境变量中添加NLS_DATE_FORMAT的设置(请参考文章:http://space.itpub.net/23135684/viewspace-628044)。那么,对应字符集的环境变量就是NLS_LANG,让同事查了下在服务器端是否有设置NLS_LANG环境变量,同事说新、旧环境都未设置。于是让他们在环境中手动设置了该环境变量,反馈说老环境中文显示恢复正常了,但新RAC依然是"?"号,猜想应该在使用RMAN恢复数据之前应该先设置好NLS_LANG环境变量,避免有转码的情况出现。让同事先在新环境中设置好NLS_LANG环境变量,再尝试使用RMAN进行恢复,刚确认这样操作之后数据就显示正常了。
        由以上这个案例,可以看出在数据库服务器端设置与数据库内部相同的NLS_LANG和应用系统中常用的NLS_DATE_FORMAT格式是非常重要的,在执行RMAN备份恢复的时候也要求先设置好这两个环境变量。在我们的安装、配置文档中加入这两个环境变量的设置,避免出现类似问题。养成好的习惯是我们能够正常下班的保障!

LANG和NLS_LANG的区别请参考文章:http://space.itpub.net/23135684/viewspace-627431

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23135684/viewspace-713507/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23135684/viewspace-713507/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值