一次Windows 注冊表中注冊表項目丟失導致的Oracle 數據庫啟動問題。
環境說明:
1.windows 2008操作系統 x64bit
2.Oracle database 11.2.0.1 32bit
3.sqlplus / as sysdba進不去,報錯:
c:\user\administrator>sqlplus / as sysdba Error 6 initializing SQL*Plus Message file sp1<lang>.msb not found SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
插曲:
也許有人會問:sqlplus 進不去,你怎麼斷定這個oracle database 是32bit的,我是用的如下的方法來斷定的:
進入到bdump下,隨便打開一個trc,在該trc文件的前面幾行就可以看到了。
經過檢查發現:如下的注冊表項目丟失
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE
於是:
我就在我的win 7 64bit環境中,安裝了一次Oracle database 11.2.0.1的32bit server software,然後將win 7中的HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE導出來,在 Windows 2008 x64bit環境中導入進去,之後sqlplus / as sysdba能順利進入。
也許有人問:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE --->是這個? HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE ---->為啥不是這個?
因為這是32bit的Oracle database server software 安裝在x64bit的windows上。
額外說明:
1. Oracle Database server software的bit數 必須與os 的bit數匹配,即:要麼都是32bit,要麼都是x64bit, 否則,Oracle support 是不予支持的。(oracle 不予支持跟能不能安裝,以及裝了能不能用,是兩個概念)
2. Oracle Database Client software的bit數 可以不與os 的bit數相匹配。