優(yōu)化Oracle網(wǎng)絡設置的方案
發(fā)表時間:2024-01-24 來源:明輝站整理相關軟件相關文章人氣:
[摘要]Oracle數(shù)據(jù)庫在不同的地域被人們廣泛使用,所以就必須要有專業(yè)的Oracle人員懂得網(wǎng)絡連接是怎么樣影響數(shù)據(jù)庫性能的。Oracle提供的TNS允許在每個數(shù)據(jù)庫中進行分配通信。 TNS服務器被看作Oracle的邏輯數(shù)據(jù)請求中的絕緣體和遠程服務器間的服務器。同樣的,網(wǎng)絡管理員有能力控制網(wǎng)絡性能調(diào)諧...
Oracle數(shù)據(jù)庫在不同的地域被人們廣泛使用,所以就必須要有專業(yè)的Oracle人員懂得網(wǎng)絡連接是怎么樣影響數(shù)據(jù)庫性能的。Oracle提供的TNS允許在每個數(shù)據(jù)庫中進行分配通信。
TNS服務器被看作Oracle的邏輯數(shù)據(jù)請求中的絕緣體和遠程服務器間的服務器。同樣的,網(wǎng)絡管理員有能力控制網(wǎng)絡性能調(diào)諧性,但是Oracle管理員沒有控制影響數(shù)據(jù)庫性能的網(wǎng)絡設置的權(quán)利。
可以利用下面我所說的重要的設置來改變分布式事物元的性能。其中包括了sqlnet.ora, tnsnames.ora, 和 protocol.ora文件中的參數(shù),這些參數(shù)可以被用做改變設置和TCP包的大小,并且調(diào)整這些參數(shù)可以影響根本的網(wǎng)絡傳輸層以便改變Oracle事物元的吞吐量。
正如剛才所說,Oracle網(wǎng)不允許Oracle專業(yè)人員調(diào)整根本的網(wǎng)絡傳輸層,并且大多數(shù)的網(wǎng)絡流量不能在Oracle環(huán)境中被改變。記住,Oracle網(wǎng)絡是一個在OSI模型中的網(wǎng)絡層,這個網(wǎng)絡層存在于網(wǎng)絡協(xié)議棧上。
但是,網(wǎng)絡信息包的頻率和大小可以被Oracle DBA來控制。Oracle有大量的工具來改變信息包的頻率和大小。
在服務器間的Oracle網(wǎng)絡連接可以用幾個參數(shù)來調(diào)諧。但是,你一定要記住,網(wǎng)絡的調(diào)諧一定要在Oracle的外面并且一個有資格的網(wǎng)絡管理員必須有在被商議后才可以調(diào)諧網(wǎng)絡。信息包的頻率和大小可以受到下面參數(shù)文件的設置的影響。
•sqlnet.ora服務器文件——automatic_ipc參數(shù)
•sqlnet.ora 客戶文件—break_poll_skip 參數(shù)
•tnsnames.ora 和 listener.ora 文件—SDU 和 TDU 參數(shù)
•protocol.ora 文件—tcp.nodelay 參數(shù)
這些調(diào)諧參數(shù)僅僅影響Oracle網(wǎng)絡層的性能。讓我們來詳細的解釋一下它們并看看它們怎么被調(diào)整用來改變Oracle網(wǎng)絡吞吐量。
在傳輸數(shù)據(jù)之前Oracle網(wǎng)絡默認等待直到緩沖器被填滿。因此,需求不能被立即送到它們的目的地。當大量的數(shù)據(jù)從一個地方送到另外一個地方的時候這個是最普通的了。Oracle網(wǎng)絡不能傳送信息包直到緩沖器滿了。添加一個protocol.ora 文件和指定一個tcp.nodelay 停止緩沖器的延遲可以修補這個缺陷。
protocol.ora文件可以被指定用來說明所有TCP/IP實現(xiàn)的無數(shù)據(jù)緩沖。這個參數(shù)可以被用在客戶和服務器端。protocol.ora語句是這樣的:
tcp.nodelay = yes
指定這個參數(shù)可以使TCP緩沖器被跳過這樣每個請求就可以很快的被送到。但是請記住,由于更小和更頻繁的信息包的傳送導致網(wǎng)絡流量的增加,這樣就會降低網(wǎng)絡的速度。
tcp.nodelay
tcp.nodelay參數(shù)僅僅在TCP遭遇超時設定的時候被使用。當在數(shù)據(jù)庫服務器之間有大量的流量時設置tcp.nodelay可以導致在性能上巨大的改變。
sqlnet.ora文件中的automatic_ip參數(shù) automatic_ipc參數(shù)迂回于網(wǎng)絡層,所以它可以給本地連接到數(shù)據(jù)庫加速。當automatic_ipc=on的時候,Oracle網(wǎng)絡會檢查本地數(shù)據(jù)庫是否被定義成相同的別,如果有,當連接被直接轉(zhuǎn)化成本地ICP連接的時候網(wǎng)絡層被回避。這個在數(shù)據(jù)庫服務器上是非常有用的,但是對于Oracle網(wǎng)絡用戶來說這個一點用都沒有。
當Oracle網(wǎng)絡連接必須被當作本地數(shù)據(jù)庫時,automatic_ipc參數(shù)僅僅應該被用在數(shù)據(jù)庫服務器上。如果不需要本地連接的時候,將這個參數(shù)設置成off,通過利用這個設置,所有的Oracle網(wǎng)絡可以可以改善其性能。
tnsnames.ora文件中的SDU和TDU SDU和TDU參數(shù)位于tnsnames.ora 和 listener.ora文件中。SDU指定送入網(wǎng)絡的信息包的大小,理論上,SDU不應該超過MTU最大值的大小。MTU依賴一個現(xiàn)實的網(wǎng)絡實現(xiàn)上,它是一個不變值。SDU在Oracle中的地位和MTU一樣。
在Oracle的網(wǎng)絡中,TDU的信息包的大小是一個默認值。理想狀態(tài)下,TDU參數(shù)應該被定義為SDU參數(shù)的一倍。SDU和TDU默認的值的大小是2048,最大值是32767字節(jié)。
下面是使用SDU和TDU的方針: •SDU永遠不要設置的比TDU大,因為你將浪費掉網(wǎng)絡資源空間。
•如果你的用戶是通過調(diào)制調(diào)解器來上網(wǎng),你應該將SDU和TDU的值設置的小一點,因為頻繁的再發(fā)送會經(jīng)常發(fā)生在調(diào)制調(diào)解器的線路上。
•在寬帶連接中,你應該將你的網(wǎng)絡SDU和TDU的值和MTU的值設置得大小一樣。在標準的以太網(wǎng)絡中,默認的MTU大小是1514字節(jié),在標準的令牌環(huán)形網(wǎng)中,MTU默認值大小是4202。
•如果MTS被使用,你必須利用適當?shù)腗TU,TDU設置來設置mts_dispatchers。
在主機之間,SDU和TDU設置是連接速度的直接函數(shù)。例如T1,設置SDU=TDU=MTU。對于速度慢的調(diào)制調(diào)解器來說,最好使用值較小的SDU和TDU。
listener.ora文件中的Queuesize參數(shù)當Oracle正在建立的連接的時候,這個連接由queuesize參數(shù)來確定。這個參數(shù)僅僅被大容量的數(shù)據(jù)庫使用。人們期待同時發(fā)生的連接的大小必須和queuesize參數(shù)的大小相等。這里是一個listener.org文件中的關于使用這個參數(shù)的例子:
LISTENER =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = marvin)(PORT = 1521)(QUEUESIZE = 32)))
這個參數(shù)的一個缺點就是它會為預計的請求分配參數(shù),因此,會使用更多的內(nèi)存和資源。如果你需要使用大容量連接你就要考慮使用MTS。同時,注意一些UNIX的版本不允許使用的隊列超過5,并且還有關于MTS隊列大小的限制。
性能 盡管大多數(shù)信息包的流量都被調(diào)諧好了,但是正確的Oracle網(wǎng)絡參數(shù)設置將給分布式系統(tǒng)的性能帶來巨大影響。對于使用Oracle的專業(yè)人員來說,他們必須完全明白其性能和優(yōu)化這些重要的參數(shù)。