禁止在生產時段改動涉及到oracle的任何東西。,時段oracle
本文是原創文章,轉載請註明出處:http://blog.csdn.net/msdnchina/article/details/44560623
警示:
禁止在生產時段改動涉及到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了。