程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> part1。Oracle。par3

part1。Oracle。par3

編輯:Oracle數據庫基礎
part1。Oracle。par3 


 
連接Oracle處理請求的方式; 

>.專用服務器<dedicated server> 
    Oracle會在客戶端登陸時創建一個新的進程。稱為專用服務器配置。在該客戶當前的會話中僅為該用戶提供服務。對於每個會話都會出現一個新的專用服務器。會話與服務器存在一對一的映射。在定義中。此專用服務器不是實例的一部分。客戶進程通過某種網絡通道/*如TCP/IP socket*/與此專用服務器直接通信。並由此服務器進程接收和執行SQL。該進程對該客戶的SQL調用提供相應的響應; 
    專用服務器配置: 
        客戶連接請求 to 專用服務器 to/*by內存訪問*/ SGA to 實例 to 數據庫 to/*by磁盤 I/O*/ 專用服務器。。。; 
>.共享服務器<shared server> 
    Oracle還可以接受另一種方式的連接。共享服務器<shared server>。正式的說法是多線程服務器<Multi-Threaded Server,MTS>。在共享服務器中。Oracle會使用一個"共享進程"池為大量用戶提供服務。這是一種連接池機制。采用共享服務器模式。共享進程會與數據庫一同啟動; 
    共享服務器請求的方式: 
        客戶鏈接 to 調度器 to SGA to 請求隊列 to 共享服務器 to 響應隊列 to 調度器 to 客戶端。。; 
        //請求隊列和響應隊列都在SGA中做出響應。。; 
>.重大區別 
    共享服務器連接中。與數據庫連接的客戶進程不會與共享服務器直接通信。在這個連接方式中。Oracle使用一個或一組稱為調度器<dispatcher,也稱分派器>的進程。專用服務器中。客戶進程會與專用服務器直接通信;
 
 
TCP/IP連接的基本原理
在TCP/IP連接上建立一個基於網絡的連接請求。此時客戶端在一台機器上而數據庫駐留在另一台機器上。客戶使用Oracle客戶軟件<Oracle提供的一組應用程序接口Application Programming Interface,API>建立一個請求。嘗試連接到數據庫。如客戶發出如下命令:
    sqlplus scott/[email protected]
這裡。客戶使用SQL*Plus。scott/tiger為用戶名/密碼。ora10g.localdmain是一個TNS服務名。TNS代表透明網絡底層<Transparent Network Substrate,TNS>。這是Oracle客戶中處理遠程鏈接的"基礎"軟件。。;
 
建立一條專用服務器連接時。
監聽器進程會創建一個專用服務器。
在UNIX中通過fork()exec()系統調用實現。這個 新的專用服務器進程繼承了監聽器建立的連接而實現與數據庫的物理連接;
//在UNIX中調用fork()以實現在初始化後創建新的進程;
在Windows中。監聽器進程請求數據庫進程為連接建立一個新的線程。之後客戶會"重定向"到該線程以建立物理連接;
 
若發出的請求是共享服務器連接時。
監聽器在接收到連接請求後。從已知的可用的調度器池中選擇一個調度器進程。之後監聽器會在向客戶返回的連接信息中描述了如何與調度器進程連接。至此。監聽器的工作結束。客戶與監聽器連接斷開並與調度器直接連接以建立同數據庫的物理連接;
//可能的話。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved