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

来源:互联网 发布:acrobat x pro mac 编辑:程序博客网 时间:2024/05/17 05:11

本文是原创文章,转载请注明出处:http://blog.csdn.net/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 sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 23 10:51:22 2015Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.ERROR:ORA-01031: insufficient privilegesEnter user-name:


 

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

 

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

0 0