資料庫連線沒有釋放造成的奇怪問題

lnwxzyp發表於2011-11-24
    今天在工作的時候,有同事問我說怎麼一個地市的資料是沒有彙總的資料,我馬上登陸檢視,發現沒有問題,結果他給我看確實是沒有彙總過的,我突然想起來,他檢視的是同義詞,同義詞是使用了dblink來檢視遠端庫的資料,而我是直接連線到遠端庫的,於是趕緊檢查同義詞和dblink
select * from user_synonyms;
select * form. user_db_links:
 
發現果然是dblink的問題,使用的tns資訊是另外一個資料庫的,找到了問題的所在於是把dblink刪除之後又重新建立了新的dblink,名稱還是原來的名稱, 但是在查詢同義詞的時候,發現出來的結果還是原來那個庫的非彙總的資料,然後用使用者名稱.表名@dblink的方式 倒是正常的,覺得問題很詭異,正在思索期間,突然想到以前遇到過查詢遠端庫的資料資料行數超出N條之後就會在產生一個正在使用的資料庫連線,可以在SYS.V$DBLINK當中查到,於是考慮是不是因為原有的dblink資訊沒有釋放掉造成的錯誤,於是執行關閉時候聚聚連線的語句
alter session close database link dblink_x;
 
結果就提示資料庫連線正在使用中,在當前會話執行 commit或者rollback 釋放掉資源,然後再次執行就正常了,檢視SYS.V$DBLINK,沒有記錄了,然後再來檢視同義詞,OK,終於正常了。

本來以為問題就得到解決了,因此也沒有再檢視其他的同義詞,結果下午又有人反應其他的資料也不對,最後只能用重建同義詞的方式來解決這個問題。

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

相關文章