ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 分析oracle.key文件在oracle启动时的作用.

分析oracle.key文件在oracle启动时的作用.

原创 Linux操作系统 作者:msdnchina 时间:2009-04-19 07:47:04 0 删除 编辑

前几天,我从一个帖子中看到,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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-30

  • 博文量
    498
  • 访问量
    1398021