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

本文是原创文章,转载请注明出处:

警示:

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

描述:

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

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

等我方工程师接手时,,发现注册表里边并没有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的缺少,是由于其他原因造成的。

熟悉windows下oracle的人都知道,这意味着什么:

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

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

一、禁止在生产时段卸载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了。

只想到处流浪人生就像一场旅行,不必在乎目的地,

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

相关文章:

你感兴趣的文章:

标签云: