database link故障處理一例

magic007發表於2008-03-10

前一天遇到一例database link問題,僅供大家參考:

資料庫是執行在Windows 2003上的Oracle 9i

先來看看故障現象,維護人員發現資料庫上的job不能正常執行。用TOAD手工呼叫job的儲存過程,TOAD一直阻塞。

經過這個故障的過程如下:

1.      在TOAD中手工執行儲存過程,TOAD掛起。
2. 用sqlplus連線到資料庫,檢查v$session_wait,發現執行儲存過程的會話正在等待library cache pin。
3. 通過x$kglob與v$session_wait,發現等待library cache pin的SQL語句為:
         select flag from account@zw.world ....
4. 手工執行此SQL,客戶端掛起。懷疑是資料鏈路問題,執行select * from dual@zw.world,客戶端也掛起。
5. 在sqlplus下,新建資料庫zw_link,執行select * from dual@zw_link,執行此SQL仍然會導致客戶端掛起。
6. 懷疑資料庫伺服器不能正常接連到ZW庫。在資料庫伺服器上用sqlplus連線ZW庫:
       sqlplus xxx/xxx@zw
    這時資料庫伺服器(windows系統)彈出一對話方塊,windows木馬防火牆提示是否允許sqlplus程式訪問zw的IP地址的資訊。看來是由於木馬防火牆引起的問題。
7. 檢視系統中執行的程式,發現windows木馬防火牆軟體是通過執行緒注入到其他程式的方式,對程式的網路訪問進行控制。在程式要訪問網路時,彈出對話方塊選擇是否允許訪問網路,但ORACLE程式是以服務方式執行的,沒有設定為與桌面互動,所以彈 出的對話方塊不能顯示,所以一直處於等待狀態。
8. 去掉windows木馬防火牆的自動啟動,重啟伺服器,刪除windows木馬防火牆,檢查資料庫連結已經正常。
9. 手工執行儲存過程,儲存過程正常執行。檢查儲存過程執行產生的日誌,也顯示正常。至此問題解決。

看來現在的防病毒,防木馬的工具也是越來越“厲害”了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69924/viewspace-201885/,如需轉載,請註明出處,否則將追究法律責任。

相關文章