網站首頁 編程語言 正文
一.什么是session?
? ? ? ?一般來說,session是通信雙方從開始通信到通信結束期間的一個上下文(context)。這個上下文是一段位于服務器端的內存:記錄了本次連接的客戶端機器、通過哪個應用程序、哪個用戶在登錄等信息[在pl/sql developer中,通過Tools-->Sessions可以查看當前數據庫的session]。?
? ? ? ?session 是和connection同時建立的,兩者是對同一件事情不同層次的描述。簡單講,connection是物理上的客戶機同服務器段的通信鏈路,session是邏輯上的用戶同服務器的通信交互。
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。如果設置為非共享,?www.linuxidc.com則每次打開一個操作窗口,pl/sql developer會利用最初輸入的帳戶和口令建立新的connection和session.
3. IIS 用程序登錄oracle
這種情況下,其實是IIS在登錄oracle。connection 和 session 的建立情況和iis機制相關。
“對于Oracle來說,安全的Sessions數應該為Sessions = (IIS process number) * (min pool size)?!?/span>
IIS進程:在IIS6.0中,采用了新的進程隔離模式來響應用戶的請求,在IIS管理器中,可以設置應用程序池的最大進程數。對于新的WEB應用請求,IIS進程管理器會啟動多個W3wp.exe進行響應。
4.其他情況有待補充
orcale的session內存
oracle 的連接分為兩種:獨占式,共享式。
在獨占式連接情況下:session(如游標,排序去,sql區)是在PGA中分配的。
在共享式連接情況下:session的一部分(如UGA)是在中SGA的larg pool中分配的。
5.oracle session 和process
oracle中每個process 都有對應的session。
process 分為:
用戶進程在V$session 中可用條件:$session.type =‘USER’.查詢。
后臺進程在V$session 中可用條件:$session.type =‘BACKGROUND’查詢。
6.常見的后臺進程:
SMON,PMON,DBWR,LGWR,MMAN,MRP,RFS,RECO,CKPT,ARCH,Dnnn,Snnn,LMON,LMD0,QMNn,TRWR,WMON,LCKnnn,SNPnnn,?MMON,DMON,SNP
7.session 相關的初始化參數:
process:oracle的連接數(sessions)與其參數文件中的進程數(process)相關,它們的關系如下:sessions=(1.1*process+5),可以通過修改inia.ora的這個process參數在更改可連接的最大session數。
workarea_size_policy:PGA用手動管理還是自動管,?在AUTO的時候每個session最多能用到5%或100M.
原文鏈接:https://blog.csdn.net/weixin_49889731/article/details/125592462
相關推薦
- 2022-04-19 基于HarmonyOS的ArkUI編寫的社區類app(四)———倒計時控制和驗證碼登錄功能的實現
- 2022-03-14 Go使用Gin框架開發博客系統(一)之環境搭建和項目初始化
- 2022-11-20 TS?中的類型推斷與放寬實例詳解_其它
- 2022-04-01 Fatal Python error: Py_Initialize: unable to load
- 2022-09-13 iOS開發之UIMenuController使用示例詳解_IOS
- 2022-05-15 Python數據結構與算法中的棧詳解_python
- 2022-01-11 web:war 和 web:war exploded 遇到的坑
- 2022-06-10 Python語法學習之進程的創建與常用方法詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支