ORA-12709:Error while loading create database character set 问题的解决
前几天,装好了一台LinuxAS 4服务器,并安装了oracle9.2.0.4,一切正常。放在一边两天没动,今天要用的时候居然启动数据库实例的时候报错:
ORA-12709:Error while loading create database character set ,这是什么原因!
先看看oracle的解释:
ora-12709 error while loading create database character set
Cause:This is an internal error
Action:Contact Oracle Support Service
居然是个内部错误,没有提供任何解题办法,只能自己找了,好在这个问题一定和字符集有关。
IXDBA.NET社区论坛
在google里搜了一把,有一些关于这个问题的描述和解决办法:
如修改 NLS_LANG的设置为合适的值;
检查ORA_NLS33这个目录下的文件(ORACLE用于支持不同字符集的文件)的数量和修改时间是否正确等。
上面两个办法都试着做了,数据库实例也删除重建了几次,还是不行。
接着用 set |grep NLS 看了一下环境变量,结果如下:
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
ORA_NLS33=/ocommon/nls/admin/data
ORA_NLS33的路径应该不对,似乎是$ORACLE_HOME这个环境变量没有起作用,
应该设置是这样的:
export ORA_NLS33=$ORACLE_H0ME/ocommon/nls/admin/data。
看如下解释:
“controle the environment-variables of user oracle !!!! There must be a
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data in the
/home/oracle/.bash_profile !!! Maybe the system can't resolve the
$ORACLE_HOME or the path is wrong ! Then try to alter it and set the
fullpath into the environment-variable and don't forget to "export" it (
export ORA_NLS33 ) Then log out and log in as oracle again.”
和前面分析的一样,改过之后重启数据库,一切正常。