windows server 2008 R2 RAC环境,其装了oracle 11.2.0.1版本,后来升级至oracle 11.2.0.4版本,重启电脑发现数据库无法启动,分析步骤如下:
1 进入cmd:
set ORACLE_HOME=e:\app\
set ORACLE_SID=sid_name

2 用 sqlplus / as sysdba连接报错:
ora-01017 message file for product=RDBMS, facility=ORA
用oerr查看
oerr ora 01017
01017, 00000, "invalid username/password; logon denied"
01017应当为用户名密码错误引起,当这里直接报message file缺失;

3 检查ORACLESERVICESIDNAME,其为正常启动,检查alert_sid.log无任何报错;
进入$ORACLE_HOME\sqlplus\mesg检mesg信息,msb文件都在,不应当是msb缺失引起的问题 ;

4检查oracle注册表位置:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1检查对应的环境变量,其皆指向原11.2.0.1版本,更改为oracle 11.2.0.4的路径;
5 重启电脑,sqlplus / as sysdba,依旧报错
6 copy 11.2.0.1的数据库密码文件到新目录下,依旧报错
7 检查注册表event log信息:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\ORACLE.tcis2]
发现其指向为bin\ORAEVRUS11.DLL,ORACLE_HOME全掉了;
全部替换如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\ORACLE.tcis2]
"EventMessagefile"="E:\\app\\Administrator\\product\\11.2.0\\dbhome_2\\BIN\\ORAEVRUS11.DLL"

重启电脑,数据库自启动,OVER.