可見網絡服務名這架馬車,在Oracle網絡連接中就好像其起到一個馬夫手中皮鞭的作用,指揮著這輛馬車的前進方向。但是,這架馬車比較嬌貴,動不動就會出現問題。
如當某個客戶端非正常關機后,重新啟動?赡軙l現無法正常連接到客戶端,提示網絡服務器名錯誤而無法正常連接到客戶端。再如有時候會因為無法解析全局數據庫名字而客戶端無法連接到數據庫。為了防止網絡服務名出現錯誤,筆者有以下幾個建議。
一是網絡服務名的信息通常情況下是保存在TNSNAMES.ORA這個文件中。如果意外關機等情況,這個文件中的信息可能會丟失。為此最好對這個文件進行獨立的備份。在遇到因為網絡服務名錯誤而無法連接到數據庫的時候,可以先利用這個文件進行恢復。通常情況下,都可以解決問題。
二是最好不要手工更改這個文件。雖然這個文件看起來比較簡單,但是修改起來比較麻煩。除非你是這方面的專家,否則的話最好不要手工更改這文件。通常情況下,最好采用Oracle數據庫自帶的工具來配置。筆者建議的作法是,先利用TNS工具把原先的配置文件刪除,然后再重新建立一個。這是一個不錯的選擇。
三是當客戶端與Oracle數據庫服務器進行連接的時候,如果出現提示網絡服務器的錯誤提示時(監聽程序無法找到適用于客戶機連接的例程),有部分原因是無法解析數據庫全局名所造成的。此時,管理員可以嘗試著修改這個文件中的全局數據庫名。即把全局數據庫名修改為數據庫服務器對應的IP地址。如果幸運的話,這么修改后就可以解決客戶端的連接問題了。
另外需要注意,有時候系統提示網絡服務名錯誤無法連接到數據庫時,有可能不是網絡服務名錯誤所造成。有可能使其他的原因。如有時候如果存在防火墻,系統也會提示這個錯誤信息。如一次用戶在Linux系統上安裝Oralce數據庫。而默認情況下,Linux系統的防火墻是開啟的。在事后沒有個防火墻關閉,導致Oralce無法正常連接。Oracle數據庫并不是不能夠通過防火墻,而是需要在防火墻上進行額外的設置。故如果是出于學習的需要,筆者建議可以先把Linux等操作系統的防火墻服務暫時關閉掉。
第三架馬車:監聽程序。
監聽程序是運行在服務器端的一個單獨的服務進程。他的作用就是通過監聽端口,監聽網絡上的客戶機對服務器的連接請求,并管理客戶機與服務器之間的網絡通信量。如果做一個形象的比喻,監聽程序就好像是賓館前面的保安?吹接锌腿藖砹,就開門來其進去。如果客人沒付錢就走人,保安就會攔住客戶不讓其走。監聽程序其的作用就是跟這個保安的作用非常類似。每次客戶端請求連接服務器時,監聽程序就會第一時間接收到這個請求。然后監聽程序會把這個請求匯報給服務器。另外,監聽程序還會對用戶的合法性做出辨別。如果客戶端提供的連接信息與監聽程序保存在配置文件中的信息(如協議、端口、數據庫等等信息)匹配的話,則監聽程序就授權客戶機連接到服務器。否則的話,就會拒絕客戶機的連接請求?梢,監聽程序這架馬車,在數據庫連接中起著舉足輕重的作用。
當服務器端的監聽程序沒有正常啟動時,客戶端將無法通過網絡連接到數據庫服務器。
文章來源于領測軟件測試網 http://www.kjueaiud.com/