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

Oracle SGA 與 PGA 大小修改實戰:參數設定、SPFILE 生效與重啟驗證

     編輯:Oracle 資料庫基礎

記憶體分配原則

  • OS 保留 20% 實體記憶體
  • SGA 佔剩餘 40~60%
  • PGA 佔剩餘 20~40%

修改步驟

  1. 以 DBA 登入,查看現值:
    SHOW PARAMETER SGA;
    SHOW PARAMETER PGA;
  2. 設定目標值 (範例 436M):
    ALTER SYSTEM SET SGA_TARGET=436M SCOPE=BOTH;
    ALTER SYSTEM SET SGA_MAX_SIZE=436M SCOPE=SPFILE;

    注意:SGA_TARGET ≤ SGA_MAX_SIZE,通常設定相等。SCOPE=BOTH 即時生效並持久化;SGA_MAX_SIZE 為靜態參數需 SCOPE=SPFILE。

  3. 重啟資料庫使 SGA_MAX_SIZE 生效:
    SHUTDOWN IMMEDIATE;
    STARTUP;
  4. 驗證:
    SHOW PARAMETER SGA;
    NAME                 TYPE        VALUE
    lock_sga             boolean     FALSE
    pre_page_sga         boolean     FALSE
    sga_max_size         big integer 436M
    sga_target           big integer 436M

PGA 調整

ALTER SYSTEM SET PGA_AGGREGATE_TARGET=200M SCOPE=BOTH;

動態生效,無需重啟。

常見錯誤

  • SGA_TARGET > SGA_MAX_SIZE 導致啟動失敗 (ORA-00837)。
  • 未使用 SCOPE=SPFILE 修改靜態參數,重啟後失效。
  • 記憶體總和超過實體 RAM 導致 Swapping,效能劇降。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved