首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 進程架構全解析:單/多進程模式、Server/Background 進程分工與連線機制

     編輯:Oracle 資料庫基礎

進程架構概覽

Oracle Instance 由「記憶體結構 (SGA)」與「背景進程」組成。進程模式決定了連線如何被服務,直接影響擴展性與資源利用率。

兩種實例模式

模式別名特點適用場景
單進程Dedicated/單用戶一個進程執行所有 Oracle 核心代碼 + 用戶應用;無背景進程MS-DOS、嵌入式、極簡開發環境
多進程Multi-user/多用戶多進程分工協作;每個連線對應專屬 Server Process所有生產環境、企業級部署

多進程架構下的進程分類

1. 用戶進程

  • 客戶端應用(SQL*Plus、JDBC、Pro*C 等)啟動的作業系統進程。
  • 發送 SQL、接收結果,不直接存取資料檔。

2. Oracle 進程

Server Process (服務器進程)

  • 專職服務一個/多個用戶進程(專用/共用伺服器模式)。
  • 核心職責:
    • SQL 解析、最佳化、執行計畫生成。
    • 從資料檔讀取資料塊至 Buffer Cache。
    • 回傳結果集給用戶進程。
  • 專用伺服器:1:1 映射,預設模式,適合長連線、複雜操作。
  • 共用伺服器:Dispatcher + Shared Server Pool,適合大量短連線(Web App),節省 PGA 記憶體。

Background Processes (背景進程)

Instance 啟動時自動建立,協同維護資料庫一致性與效能:

進程核心職責
DBWn將髒塊從 Buffer Cache 寫入資料檔
LGWR將 Redo 記錄從 Log Buffer 寫入線上日誌檔
CKPT定期更新資料檔標頭與控制檔的 Checkpoint SCN
SMONInstance Recovery、臨時段清理、空間合併
PMON進程失敗清理、釋放鎖、重註冊 Listener
ARCn歸檔模式下將線上日誌複製到歸檔目的地
RECO分散式交易自動解決 in-doubt 狀態
MMAN/MMNL/MMON自動記憶體管理、AWR 快照收集、ADDM 分析

連線建立流程

  1. Client 透過 TNS Alias / EZConnect 聯繫 Listener。
  2. Listener 依配置啟動 Server Process(專用)或導向 Dispatcher(共用)。
  3. Server Process 附掛到 SGA,開始服務 Session。

關鍵配置參數

  • PROCESSES:最大同時作業系統進程數(含背景進程)。
  • SESSIONS:衍生自 PROCESSES,限制並發 Session。
  • DISPATCHERS、SHARED_SERVERS:啟用共用伺服器模式。

總結

多進程架構透過職責分離實現高並發與容錯。理解 Server/Background 進程分工、專用與共用伺服器選型,是架構設計與效能診斷的必修課。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved