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