你是否懂得Oracle.Net協議棧
學習Oracle時,你可能會遇到Oracle.Net問題,這里將介紹Oracle.Net問題的解決方法,在這里拿出來和大家分享一下。由于Oracle數據庫通常需要在不同地方被訪問,所以Oracle開發人員必須搞清楚數據庫性能如何被網絡通訊所影響。由Oracle提供的TNS(Transparent Network Substrate)允許不同數據庫之間的分布式通訊。
作為一種分布式協議的TNS,允許遠距離的系統之間的透明數據庫通訊。TNS成為Oracle邏輯數據請求與遠距離服務器的物理通訊之間的“絕緣體 (insulator)”。由此,網絡管理人員可以控制很多方面的網絡性能優化,這樣,Oracle管理人員就極少獲得影響整個數據庫性能的網絡設置的控制權。
你可以通過使用一些關鍵設置來提高分布式處理的性能,這篇文章討論了一些重要的設置。與分布式通訊相關的init.ora參數,比如tcp.nodelay,能夠用于改變Oracle數據庫中的信息包傳輸(packet-shipping)的機制。
本文中我也討論了sqlnet.ora, tnsnames.ora和protocol.ora文件中的參數。你可以使用這些方法來改變TCP信息包的配置和大小,改變之后的信息包能夠對網絡透明層產生重要影響,以達到提高整個Oracle交流的目的。
Oracle.NET不能允許Oracle管理人員優化Oracle網絡參數以提高網絡性能。事實上,絕大部分網絡通訊都無法在Oracle環境中得到優化。Oracle.Net是位于特定網絡協議棧的OSI模型中的一個層。
為了響應一個數據請求,Oracle.Net 獲得數據并傳遞到協議棧。協議棧然后從這一數據建立一個信息包并傳遞到網絡。Oracle.Net的作用是將數據傳送到協議棧。
然而,DBA能夠控制網絡信息包的頻率和大小。在Oracle中存在著豐富的可以更改信息包頻率和大小的工具。一個簡單的例子就是以更低的頻率改變傳送更大數量快照的時間間隔。
可以使用不同參數來優化不同服務器之間的Oracle.Net。請記住,網絡優化是Oracle范圍之外的操作,一個合格的網絡管理人員應該經得起各種詢問。使用一些設置可以影響網絡信息包傳送的頻率和大小,這些設置包含在以下的參數文件。
◆protocol.ora文件—tcp.nodelay
◆sqlnet.oraserver 文件—automatic_ipc
◆sqlnet.oraclient 文件—break_poll_skip
◆tnsnames.ora文件—SDU, TDU
◆listener.ora文件—SDU, TDU, 以及queuesize
這些優化參數只影響Oracle.Net層的性能。現在讓我們仔細地查看這些參數,以及這些參數如何被調整以提高Oracle.Net。
【編輯推薦】