oracle資料庫的連線結構有三種:
1) 組合使用者與伺服器結構:在這種連線方式中,客戶端與伺服器同處一台機器中,對於每乙個使用者,其庫應用程式與伺服器程式組合成單個伺服器程序。
2) 專用伺服器(dedicated server)結構:在這種方式中,對於每乙個使用者,其資料庫應用是由使用者程序所執行,並有乙個專用伺服器程序為之服務,執行oracle伺服器**。
3) 多執行緒伺服器(multithreaded server)體系結構:在這種方式中,乙個或多個客戶應用程式共享一組伺服器程序,與專用伺服器不同的是,客戶和伺服器程序不是一對一的關係,而是由排程程序對多個伺服器程序進行排程,以服務來自客戶應用的連線請求。
專用伺服器
專用伺服器的工作過程:
1) 客戶端通過oracle net向***發連線請求
2) ***收到請求並將此請求導向伺服器,伺服器向使用者返回乙個連線成功資訊,並為此使用者建立乙個專用伺服器程序
3) 客戶直接與該專用伺服器程序進行互動,處理sql,並且伺服器在該會話的pga中建立乙個專用sql區。
如果客戶端要求建立專用伺服器連線方式,可以修改客戶羰的網路配置檔案tnsnames.ora或修改連線描述串。增加關鍵字「server=dedicated」,如:
prod=
(description=
(addresslist=
(address=
(protocol=tcp)(host=192.168.0.3)(port=1521)
(server=dedicated)))
(connect_data=(sid=prod)))
還必須修改sqlnet.ora檔案,增加「use_dedicated_server=true」
多執行緒伺服器體系結構
專用伺服器結構中,乙個伺服器程序只為乙個客戶服務。這樣的話,如果有一千個客戶,就需要有一千個對應的伺服器程序,就會耗費大量的系統資源。為了支援對於可伸縮性的需求,在oracle7中引入了多執行緒伺服器(mts,也稱為共享伺服器)。下面說明共享伺服器建立連線的過程,以級與建立專用伺服器連線過程的不同:
1) 客戶通過網路與***聯絡
2) ***檢測到請求,基於oracle net結構來確定是否與多執行緒伺服器連線。***將客戶請求導向相應的排程程式。
3) ***通過使客戶與排程程式了解對方的網路位址,從面完成了雙方的介紹。
4) 一旦客戶與排程程式知道如何找到對方,它們就直接通訊,不要需要***。客戶直接將操作請求傳送給高度程式。
5) 排程程式將客戶請求放在sga的請求佇列中。
6) 下乙個可用的共享伺服器程序從請求佇列中讀取請求,進行相應的工作。
7) 共享伺服器程序將結果存放在提交相應請求的排程程式的響應佇列中。
8) 排程程式從響應佇列中讀取資料並將結果送組客戶。
多執行緒伺服器的設定引數有:
mts_service:多執行緒伺服器名稱,一般為資料庫名
mts_dispatchers:初始排程器個數
mts_max_dispatchers:排程器最大個數
mts_servers:共享伺服器個數
mts_max_servers:最大共享伺服器個數
多執行緒伺服器的設定是通過對以上各個引數的設定完成的。格式如下:
mts_service=rs
mts_servers=10
mts_max_servers=100
mts_dispatchers="(protocol=tcp)(pool=yes)(mult=yes)"
mts_dispatchers="(protocol=ipx)(pool=yes)(mult=yes)"
mts_dispatchers="(protocol=ipc)(pool=yes)(mult=yes)"
mts_max_dispatchers=100
有關多執行緒伺服器的資料字典如下:
v$mts
v$dispatcher
v$shared_server
v$circult
oracle 連線配置總結
1.tnsnames.or配置檔案作用 tnsnames.ora 用於 為oracle客戶端配置連線資訊,比如連那個 機器的oracle例項等。如下存在乙個orcl13的連線資訊供客戶端使用。orcl13 description address list address protocol tcp h...
Oracle遠端連線配置
注 本文講述了oracle資料庫例項連線的配置過程,三個重要的配置檔案位於c oracle product 10.1.0 db 1 network admin目錄下 1.sqlplus sys oracle orcl sqlnet.ora 檔案格式 names.directory path tnsn...
Oracle 監聽連線配置 注意
當你配置乙個監聽鏈結的時候,特別是讓別人給你提供乙個監聽連線串的時候,拷貝到自己的tnsnames.ora 檔案中的時候 要特別小心,例如下面的監聽連線串eabaitst必須頂格,如果有空格就會報錯連線不上,或者 eabaitst 和 之間要有空格,不要在這些低階問題上翻船 eabaitst des...