禁止在生产时段改动涉及到oracle的任何东西。

在Windows服务器上卸载Oracle客户端可能导致注册表中HKEY_LOCAL_MACHINESOFTWAREORACLE项缺失,影响Oracle数据库实例和服务启动。需谨慎操作,避免在生产时段改动涉及Oracle的任何东西。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是原创文章,转载请注明出处:http://blog.youkuaiyun.com/msdnchina/article/details/44560623

警示:

禁止在生产时段改动涉及到oracle的任何东西。

 

描述:

某单位的数据库是运行在windows服务器上。oracle database的版本是817

某工程师在该windows服务器上安装了oracle9iclient,然后又卸载掉了Oracle 9iclient,至于还做过什么其他操作,未知。

 

等我方工程师接手时,发现注册表里边并没有HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE这一项。

注意:

经过我做实验测试Oracle 9i client_home的删除(之前已经安装了oracle 817),得出结论:

1.卸载Oracle 9i client_home不会导致 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE被删除。

 

因此,HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE的缺少,是由于其他原因造成的。

 

 

熟悉windowsoracle的人都知道,这意味着什么:

意味着Oracle数据库实例无法通过Windows服务OracleServerXXXstartupOracle监听器无法启动(无论通过Windows服务中的监听服务还是通过lsnrctl start)。

 

最终结论:虽然卸载windows数据库服务器上的Oracle client貌似没啥问题,不过windowslinux麻烦的地方就在于注册表,因此还是小心为好:

一、禁止在生产时段卸载windows数据库服务器上的Oracle client

二、禁止在生产时段改动涉及到oracle的任何东西

  比如我遇到的案例:$ORACLE_HOME下的network/admin/sqlnet.ora 里,有如下的内容:

# SQLNET.AUTHENTICATION_SERVICES = (NTS)

熟悉的人都知道,这么设置会导致如下问题:

F:\oracle\product\10.2.0\db_1\BIN>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 23 10:51:22 2015

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

ERROR:
ORA-01031: insufficient privileges


Enter user-name:


 

而地纬的医保程序就是要求db server上的sqlnet.ora 中的内容是# SQLNET.AUTHENTICATION_SERVICES = (NTS),否则医保程序无法运行。

 

其实,当时我也考虑过先把#删掉,不过后来想了老盖说过的话,我就没动生产环境,就是这么一个想法,救了我一次:我要是把#删掉的话,医保的前台app肯定就连不上db了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值