oracle session和process的關係

zhangsharp20發表於2014-11-11

什麼是session

通俗來講,session 是通訊雙方從開始通訊到通訊結束期間的一個上下文(context)。這個上下文是一段位於伺服器端的記憶體:記錄了本次連線的客戶端機器、透過哪個應用程式、哪個使用者在登入等資訊[在pl/sql developer中,透過Tools--&gtSessions可以檢視當前資料庫的session]。session 是和connection同時建立的,兩者是對同一件事情不同層次的描述。簡單講,connection是物理上的客戶機同伺服器段的通訊鏈路,session是邏輯上的使用者同伺服器的通訊互動。session被應用於oracle層次而非作業系統層次.在不考慮透過專用伺服器或共享伺服器進行登入的情況下,這個引數限制了對指定例項的併發登陸數. 

 

oracle中一個使用者登入oracle伺服器的前提,就是該使用者具有oracle的 “create session”許可權。oracle允許同一個使用者在同一個客戶機上建立多個同伺服器的連線,這一點從oracle的檢視V$session中可以看到[select * from v$session;]。每個session都代表了使用者與伺服器的一個互動。就像兩個國家之間可以同時開展很多談判,經濟的,環境的等等。關閉了有關經濟的談判,不會影響到環境談判的進行。後臺程式PMON會每隔一段時間,就會測試使用者連線狀況,如果連線已斷開,PMON會清理現場,釋放相關的資源。

 

 

在具體的應用場景中connction 和 session 有很多情況:

 

1. sqlplus 登入 oracle

 

這種場景比較容易理解,一個連線對應一個session。

 

2. 其他客戶端工具登入oracle

 

比如:pl/sql developer 登入oracle。pl/sql developer 可以設定是否每個視窗共用同一個session. 如果想在除錯視窗除錯儲存過程或函式,則必須設定為共享session。如果設定為非共享, 則每次開啟一個操作視窗,pl/sql developer 會利用最初輸入的帳戶和口令建立新的connection 和 session.

 

3. IIS 用程式登入oracle

 

這種情況下,其實是IIS在登入oracle。connection 和 session 的建立情況和iis機制相關。

 

“對於Oracle來說,安全的Sessions數應該為Sessions = (IIS process number) * (min pool size)。”

 

IIS程式:在IIS6.0中,採用了新的程式隔離模式來響應使用者的請求,在IIS管理器中,可以設定應用程式池的最大程式數。對於新的WEB應用請求,IIS程式管理器會啟動多個W3wp.exe進行響應。


什麼是process

process:這個引數限制了能夠連線到SGA的作業系統程式數(或者是Windows 系統中的執行緒數),這個總數必須足夠大,從而能夠適用於後臺程式與所有的專用伺服器程式,此外,共享伺服器程式與排程程式的數目也被計算在內.此外,共享伺服器程式與排程程式的數目也被計算在內.因此,在專用伺服器環境中,這是一種限制併發連線數的方法. 


session與process的關係

oracle的連線數(sessions)與其引數檔案中的程式數(process)相關,它們的關係如下:sessions=(1.1*process+5),若果資源允許,而當前process 數過小,那麼可以適當增大processs 數( session 數依賴於process數,一般不去直接修改session數)。


Shared Server中的Process 一個對應著Oracle 中的一個或者一個以上的Session。Dedicated Server中,一個session對應一個process,但是一個process未必對應一個session。



如何修改session與process

v$session  每一個連線到資料庫例項中的session都擁有一條記錄。包括使用者session及後臺程式如DBWR,LGWR,arcchiver等等。

V$process 本檢視包含當前系統oracle執行的所有程式資訊。常被用於將oracle或服務程式的作業系統程式ID與資料庫session之間建立聯絡。

show parameter sessions  檢視當前session配置

show parameter processes   檢視當前process配置

alter system set processes=1000 scope=spfile  更改配置,更改完後需要重啟資料庫。

修改oracle配置檔案中process進行修改

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29802484/viewspace-1328480/,如需轉載,請註明出處,否則將追究法律責任。

相關文章