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