一次Windows 註冊表中登錄機碼目丟失導致的Oracle 資料庫啟動問題。,windowsoracle
一次Windows 註冊表中登錄機碼目丟失導致的Oracle 資料庫啟動問題。
環境說明:
1.windows 2008作業系統 x64bit
2.Oracle database 11.2.0.1 32bit
3.sqlplus / as sysdba進不去,報錯:
c:\user\administrator>sqlplus / as sysdbaError 6 initializing SQL*PlusMessage file sp1<lang>.msb not foundSP2-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數相匹配。