实验环境说明:
操作系统: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 Area626327552 bytes
Fixed Size2215944 bytes
Variable Size192942072 bytes
Database
Buffers427819008 bytes
Redo Buffers3350528 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深入理解,还需要养成细心和严谨的好习惯!
ByFishExpert
2012.07.26