Oracle體繫結構之-串連配置結構

來源:互聯網
上載者:User
 Oracle的串連可以分成兩種:

一、專用伺服器串連結構(Dedicated Server):

在這種方式中,對於每一個使用者,其資料庫應用是由使用者進程所運行,並有一個專用伺服器處理序為之服務,執行Oracle伺服器代碼。

專用伺服器的工作過程:
1)用戶端通過oracle net向監聽器發串連請求
2)監聽器收到請求並將此請求導向伺服器,伺服器向使用者返回一個串連成功資訊,並為此使用者建立一個專用連線
3) 客戶直接與該專用伺服器處理序進行互動,處理SQL,並且伺服器在該會話的PGA中建立一個專用SQL區。

二、多線程伺服器串連結構(Multithread Server)

在這種方式中,一個或多個客戶應用程式共用一組伺服器處理序,與專用伺服器不同的是,客戶和伺服器處理序不是一對一的關係,而是由調度進程對多個伺服器處理序進行調度,以服務來自客戶應用的串連請求

專用伺服器結構中,一個伺服器處理序只為一個客戶服務。這樣的話,如果有一千個客戶,就需要有一千個對應的伺服器處理序,就會耗費大量的系統資源。為了支援對於延展性的需求,在oracle7中引入了多線程伺服器(MTS,也稱為共用伺服器)。下面說明共用伺服器建立串連的過程,以級與建立專用伺服器串連過程的不同:

1) 客戶通過網路與監聽器聯絡
2) 監聽器檢測到請求,基於Oracle net結構來確定是否與多線程伺服器串連。監聽器將客戶請求導向相應的發送器
3) 監聽器通過使客戶與發送器瞭解對方的網路地址,從面完成了雙方的介紹。
4) 一旦客戶與發送器知道如何找到對方,它們就直接通訊,不要需要監聽器。客戶直接將操作請求發送給發送器
5) 發送器將客戶請求放在SGA的請求隊列中。
6) 下一個可用的共用伺服器處理序從請求隊列中讀取請求,進行相應的工作。
7) 共用伺服器處理序將結果存放在提交相應請求的發送器的響應隊列中
8) 發送器從響應隊列中讀取資料並將結果送組客戶

補充:
==============================================================================
共用伺服器串連和專用伺服器串連之間有一個重大區別,與資料庫連接的客戶進程不會與共用伺服器直接通訊,但專用伺服器則不然,客戶進程會與專用伺服器直接通訊。

之所以不能與共用伺服器直接對話,原因就在於這個伺服器處理序是共用的。為了共用這些進程,還需要另外一種機制,通過這種機制才能與伺服器處理序“對話”。為此,Oracle使用了一個或一組稱為“調度器”的進程。客戶進程通過網路與一個調度器進程通訊。這個調度進程將客戶的請求放入SGA中的請求隊列。第一個閒置共用伺服器會得到這個請求,並進行處理。完成這個命令後,共用伺服器會把響應放在在原調度器(即接受請求的調度器)的響應隊列中。調度器進程一直在監聽這個隊列,發現有結果後,就會把結果傳給使用者。
==============================================================================

註:本文內容均參考自CSDN網友方友松的技術Blog,作者Blog地址為:http://blog.csdn.net/truexf/
        及Tom kyte的《Oracle9i&10g編程藝術》人民郵電出版社

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.