【windows】将程序启动加载到系统服务

oracle 8i 装到 windows xp,系统启动时报错,oradb80.exe 启动失败。

以前查到是 xp和 oracle 8i系统兼容的问题,数据库是装在 别人电脑上,所以眼不见心不烦。 现在 自己机子上跑 ,发现的确无法忍受。 没办法,查资料。

Microsoft的帮助文档也有这方面的介绍 http://support.microsoft.com/kb/841180 .
这一段常和微软的帮助文档打交道,感觉文档说得简洁,但是实际操作 往往要涉及更多。上面提供两种方案。
1。批处理
      相对而言批处理,比较简单,比较致命的是,系统必须登陆之后,这个批处理才能执行。
      这个处理可以参看微软提供的帮助。 下面转抄一下。
    Oracle 数据库服务启动行为更改为运行 Oracle 数据库, 计算机上手动类型, 然后手动启动 Oracle 数据库服务。 要这样做, 请按照下列步骤操作:

1.为手动更改 Oracle 数据库服务的启动类型。 要这样做, 请按照下列步骤操作:
a. 开始 , 指向 设置 , 依次 控制面板 。
b. 在控制面板, 双击 管理工具 。
c. 在工具窗口, 双击 服务 。
d. 在右窗格是该服务窗口, 双击 OracleService < SID > 。
e. OracleService < SID > 属性 (本地计算机) 对话框中单击 常规 选项卡。
f. 单击 " 启动类型 列表, 中 手动 并单击 " 确定 " 。
2.更改是对 Oracle 数据库实例设置启动这样 Oracle 数据库服务启动时不自动不启动的数据库实例。 要这样, 请按照下列步骤操作。

警告 如果注册表编辑器使用不当, 可能会严重问题, 可能需要以重新安装操作系统。 Microsoft 无法保证您能解决因注册表编辑器使用不当而导致问题。 需要您自担风险使用注册表编辑器。
a. 开始 , 依次 运行 。
b. 在 打开 框中, 键入 regedit , 然后单击 确定 。
c. 在注册表编辑器, 找到以下注册表项: HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0

注意 对此注册表项的名称结束于零 (0), 不字母 o。
d. 在右窗格注册表编辑器, 双击单击 ORA_ < SID > _AUTOSTART 。

注意 : < SID > 替换 Oracle 数据库服务的名称。
e. 编辑字符串 对话框中, 在 数值数据 框中, 键入 FALSE , 然后单击 确定 。
f. 关闭注册表编辑器。
3.使用 StartupOracleORCL.sql 名称创建以下批处理文件:
connect <username>/<password>
startup PFILE=<Full path of the INIT.ORA file for the instance of Oracle database>

exit
4.使用 Orastart.bat 在同一文件夹位置步骤 3 中创建 StartupOracleORCL.sql 批处理文件名称创建以下 Windows 批处理文件:
@echo off

net start <Oracle Service Name>
set ORACLE_SID=<Oracle SID> 
svrmgrl @<Full path of startupOracleORCL.sql created in Step 3>

exit

注意 您必须替换 Oracle < FullServiceName > 分别与 Oracle 数据库服务名称和 SID 对 Oracle 数据库服务, 和 < Oracle SID >
5.在命令提示符处运行 Orastart.bat 文件。

注意 您可能发现的数据库实例启动成功。

2。通过使用 Windows 资源工具包工具是 Oracle 服务启动自动化

   这个建立 花了我比较长的时间。 先把微软的帮助 贴一下,在讲一下,要注意的东西


  要通过服务实用程序 (Srvany.exe), 用作服务安装工具 (Instsrv.exe) 和应用程序自动化的
  Oracle 服务启动请按照下列步骤操作。 

1.下载并安装 Windows 资源工具包工具。 DownloadDownload the Rktools.exe package now. (http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;DisplayLang=en)
2.创建根是驱动器 C 上名为 OracleStartup 文件夹
3.C:/OracleStartup 文件夹中创建一个文本文件, 名为 OracleStartup.reg 且包含下列信息:
REGEDIT4

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/OracleStartup/Parameters]
"Application"="C://OracleStartup//OracleStartup.cmd"

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0]
"ORA_ORCL_AUTOSTART"=hex(2):34,00,36,00,2c,00,30,00,30,00,2c,00,34,00,31,00,2c,00,30,00,30,/
  00,2c,00,34,00,63,00,2c,00,30,00,30,00,2c,00,35,00,33,00,2c,00,30,00,30,00,/
  2c,00,34,00,35,00,2c,00,30,00,30,00,2c,00,30,00,30,00,2c,00,30,00,30,00,00,/
  00
4.双击 C:/OracleStartup/Oracle.reg 文本文件将信息导入注册表。
5.C:/OracleStartup 文件夹中创建一个文本文件, 名为 OracleStartup.cmd 且包含下列信息:
sleep 60
net start OracleServiceORCL
SET ORACLE_SID=ORCL
svrmgrl @C:/OracleStartup/OracleStartup.sql
sleep 15
EXIT
6.创建包含下列信息, C:/OracleStartup/OracleStartup.sql 文本文件:
connect internal/oracle
startup PFILE=C:/init.ora
注意 : 启动参数必须包括对 Init.ora 文件完全限定路径。

要点 : C:/OracleStartup/OracleStartup.cmd 文件包含用户凭据以明文形式。 因此, 限制对该文件及对 Oracle 服务启动帐户仅向管理员访问。 您可能能够避免包括 C:/OracleStartup/OracleStartup.cmd 文件中的用户凭据通过配置 " Oracle 服务器对于 Windows 身份。 有关如何配置 Oracle for Windows 身份验证, 获取笔记: 60634.1) WIN 从 OracleCorporation (: 安装 O/S 验证。 有关如何联系 OracleCorporation, 请访问以下网站:
http://www.oracle.com/ (http://www.oracle.com/)
7.作为服务启动 OracleStartup 通过 InstSrv.exe 和 SrvAny.exe 资源工具包工具和通过使用下列命令:

" C:/ProgramFiles/Microsoft Files/Resource Kit/instsrv.exe " OracleStartup " C:/ProgramFiles/Microsoft Files/Resource Kit/SRVAny.exe "
sc config " OracleServiceORCL " start= demand
退出
8.重新启动 Windows。

 

第一步操作应该没有问题。
第二步要注意,如果你去查看注册表(在导入之后),会发现在HKEY_LOCAL_MACHINE/SYSTEM 下面有两个
CurrentControlSet,而恰恰第一个是不起作用的(具体原因不知) ,查看第二个CurrentControlSet,可以发现
注册的东西 已经在里面了。
第三步创建sql脚本 和cmd 执行文件 没有什么难度,唯一要注意的就是 路径,以及脚本中 的svrmgr的具体名字,比如 我的8i 就是 svrmgr30.exe(开始还折腾了半天)
第四步服务注册。 这一步很重要,我看着说明操作的,不过一直不顺利。 实际操作应该是这样
   1。 安装第一步下载的 工具包。
   2。 将srvany.exe注册到服务项  : 因为安装的路径是没有设进系统path的,所以先定位到 工具包的文件夹下,
      比如我安装完是 c:/program Files/windows Resource Kits/tools ( 注意这个路径是有空格的,所以上面的
     步骤 要用双引号)。
    命令行执行  :   instsrv  srvany  "c:/program Files/windows Resource Kits/tools/srvany.exe"
    会提示注册成功
     接下来,注册OracleStartup启动, 注意 这个服务名要和第二步操作的 注册表服务项名字一致  即 
    “OracleStartup”。 
    命令行执行 instsrv  OracleStartup "c:/program Files/windows Resource Kits/tools/srvany.exe"  

   接下来的 sc config OracleServiceORCL  start= demand 只是要改变 OracleServiceORCL 的启动类型而已,
  (这里有一个关键 等号后面要留一个空格)
   将 OracleStart<SID>这个服务设为手动,将 刚刚注册的 OracleStartup 改为自动。
   注册服务完成。
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值