分析oracle.key檔案在oracle啟動時的作用.

msdnchina發表於2009-04-19

前幾天,我從一個帖子中看到,oracle.key這個檔案很重要,之前我是不知道有此檔案的,此檔案在E:\oracle\product\10.2.0\db_1\BIN\中,oracle.key中的內容如

下:SOFTWARE\ORACLE\KEY_OraDb10g_home1

為了驗證oracle.key 檔案在oracle啟動時的作用,我做了如下試驗:

第一步:
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 4月 19 07:00:09 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-01531: 例項已開啟資料庫


SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開

第二步:
改oracle.key檔案的內容如下:SOFTWARE\ORACLE\KEY_OraDb10g_home111 ,也就是在最後追加了11

第三步:


C:\Documents and Settings\Administrator>sqlplus / as sysdba
Error 6 initializing SQL*Plus
Message file sp1.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

C:\Documents and Settings\Administrator>sqlplus /nolog
Error 6 initializing SQL*Plus
Message file sp1.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

C:\Documents and Settings\Administrator>

第四步:
從windows 計算機管理-服務裡,先關閉oracleservice+oracle_sid,再啟動oracleservice+oracle_sid,
結果2秒之內,oracleservice+oracle_sid就啟動成功了,熟悉windows下啟動oracle的人知道,這明顯是oracle的假啟動.
從windows 計算機管理-事件檢視器中,找不到跟此次啟動有用的資訊,無用資訊倒是有(OracleServiceORACLE 服務成功傳送一個 開始 控制元件;OracleServiceORACLE 服務處於 正在執行 狀態。)
從E:\oracle\product\10.2.0\admin\oracle\bdump\alert_oracle.log中,沒有記錄此次啟動(指的是從計算機管理-服務裡啟動oracle,也就是假啟動的這次)的資訊.

 

試驗結論:
我感覺從sqlplus / as sysdba 敲回車後,系統是如下處理的:
( 從windows 計算機管理-服務裡,啟動oracleservice+oracle_sid 過程,因為對windows服務對oracle的封裝過程不是很瞭解.暫不討論此種方法啟動oracle的步驟.)
1.讀取sqlplus所在目錄(此目錄是在windows的環境變數裡有記錄的),
2.找到此目錄下oracle.key檔案,從此檔案中獲得oracle環境變數在登錄檔中的儲存位置.
3.訪問登錄檔的此儲存位置,獲得oracle的環境變數資訊.
4.進入sqlplus.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/161195/viewspace-590923/,如需轉載,請註明出處,否則將追究法律責任。

相關文章