实验环境说明:
操作系统:OEL5.6 数据库版本11gR2
emrep数据库原字符集:ZHS16GBK
update数据库字符集为:WE8MSWIN1252
故障再现:
SYS@emrep>SELECT userenv('language') FROM dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
SYS@emrep>UPDATE sys.PROPS$ SET VALUE$='WE8MSWIN1252';
SYS@emrep>commit;
SYS@emrep>shutdown immediate;
[oracle@ocm ~]$ export ORACLE_SID=emrep
[oracle@ocm ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 26 15:15:37 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SYS@emrep>startup
ORACLE instance started.
Total System Global Area 626327552 bytes
Fixed Size 2215944 bytes
Variable Size 192942072 bytes
Database Buffers 427819008 bytes
Redo Buffers 3350528 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-12708: error while loading create database NLS parameter NLS_RDBMS_VERSION
Process ID: 915
Session ID: 1 Serial number: 5
SYS@emrep>
查看alert_emrep.log的信息:
[oracle@ocm ~]$ cd /u01/app/oracle/diag/rdbms/emrep/emrep/trace
[oracle@ocm trace]$ tail -100f alert_emrep.log
看到如下报错:
##################################
SMON: enabling tx recovery
Errors in file /u01/app/oracle/diag/rdbms/emrep/emrep/trace/emrep_ora_915.trc:
ORA-12708: error while loading create database NLS parameter NLS_RDBMS_VERSION
Errors in file /u01/app/oracle/diag/rdbms/emrep/emrep/trace/emrep_ora_915.trc:
ORA-12708: error while loading create database NLS parameter NLS_RDBMS_VERSION
Error 12708 happened during db open, shutting down database
USER (ospid: 915): terminating the instance due to error 12708
Instance terminated by USER, pid = 915
ORA-1092 signalled during: ALTER DATABASE OPEN...
opiodr aborting process unknown ospid (915) as a result of ORA-1092
Thu Jul 26 15:15:49 2012
ORA-1092 : opitsk aborting process
################################
官方文档的建议:
ORA-12708: error while loading create database NLS parameter string
Cause: Internal error(内部错误)
Action: none
解决办法:
如果有完整的备份,拿备份恢复!否则,用Dul抽取数据重新建库!
总结:
看是很简单的一条update语句,但是,导致了oracle内部错误,而且很严重!有完整的备份还有救,否则,这套库就废掉了!DBA不仅需要对oracle深入理解,还需要养成细心和严谨的好习惯!
By FishExpert
2012.07.26
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26857237/viewspace-737005/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26857237/viewspace-737005/