過度使用DBLINK做系統整合會帶來的問題
過度使用DBLINK做系統整合會帶來很多問題,問題主要由以下幾點:
1. 大量消耗資料庫資源;
本地系統每通過DBLINK連結遠端系統一次,都會產生一個本地session,如本地session不退出或者手動釋放,只有通過session逾時才能自動釋放,會浪費大量的系統資源
2. 容易出現資料庫BUG;
大量使用DBLINK,本地系統極易出現ORA-02068、ORA-03113、ORA-02080、ORA-02054、ORA-02050等Oracle錯誤,這種錯誤大部分會影響當前session正在處理的業務
3. 效能較差;
由於使用DBLINK,本地系統在擷取資料時,每次連結都會對遠端資料庫進行一次全表掃描,且所有資料都會傳輸回本機資料庫內,導致效能降低並且嚴重浪費當前系統資源。尤其出現一條sql語句從兩個DBLINK中取數,更被稱之為“效能殺手”,尤其是OLTP型資料庫
4. 資料轉送不穩定,佔用頻寬嚴重,容易產生丟包風險;
DBLINK本身沒有資料存放區、監控等功能,是通過網路中的資料庫進行傳輸時,如果在傳輸過程中出現資料丟包現象,DBLINK本身不會發現,只用當業務進行完畢才能發現丟包現象,這樣會影響當前正在處理的業務;另外,通過DBLINK查詢的資料會像資料全部傳至本機資料庫進行操作,資料轉送量很大,佔用頻寬嚴重,可能會導致網路堵塞
5. Oracle資料功能受限
DBLINK本身不支援對oracle LOB大對象的操作,在使用PROCDURE時,使用COMMIT等操作時可能會出現錯誤;
6. 可擴充性較差
如果多系統之間 使用DBLINK進行傳輸,每增加一個系統,都會增加一個或多個DBLINK連結或者修改對應的介面程式,如果修改其中一個介面,需要修改所有關聯絡統內的介面程式;
7. 維護性差、安全性較低
通過DBLINK進行連結需要將遠端資料庫使用者名稱、密碼、IP地址存在本機資料庫,如遠端進行密碼修改、IP地址變更,本機資料庫也需要修改,如果系統較多,每個系統都需要同時修改。切本機資料庫管理員能夠看到遠端資料的密碼、IP地址,對系統安全產生影響。