溫馨提示×

Linux Oracle資源限制如何配置

小樊
52
2025-10-04 00:22:41
欄目: 云計算

Linux環境下Oracle資源限制配置指南
在Linux系統中,Oracle數據庫的資源限制配置需結合操作系統級限制(通過limits.conf和PAM模塊)和數據庫級限制(通過PROFILE對象)兩部分完成,以確保數據庫運行的穩定性和安全性。

一、操作系統級資源限制配置

操作系統級的資源限制是Oracle數據庫正常運行的基礎,主要通過修改/etc/security/limits.conf文件和配置PAM模塊實現。

1. 修改/etc/security/limits.conf文件

該文件用于定義用戶或用戶組的資源限制,需為Oracle用戶(如oracle)添加以下關鍵參數(以Oracle官方推薦值為例):

# Oracle用戶資源限制(軟限制/硬限制)
oracle soft nproc 2048       # 最大進程數(軟限制)
oracle hard nproc 16384      # 最大進程數(硬限制)
oracle soft nofile 1024      # 最大打開文件數(軟限制)
oracle hard nofile 65536     # 最大打開文件數(硬限制)
oracle soft stack 10240      # 棧大?。↘B,軟限制)
oracle hard stack 32768      # 棧大?。↘B,硬限制)
  • 參數說明
    • nproc:限制Oracle用戶可創建的最大進程數,避免進程數耗盡導致系統崩潰;
    • nofile:限制Oracle用戶可打開的最大文件數(包括數據文件、日志文件等),確保數據庫能正常讀寫;
    • stack:限制每個進程的棧大小,防止棧溢出。
  • 注意:修改后需保存文件,重新登錄Oracle用戶使軟限制生效。

2. 配置PAM模塊

確保PAM(Pluggable Authentication Modules)模塊能讀取limits.conf中的限制,需編輯/etc/pam.d/login文件(部分系統可能為/etc/pam.d/sshd,若通過SSH登錄):

session required /lib64/security/pam_limits.so  # 64位系統
# 或 session required /lib/security/pam_limits.so  # 32位系統

該配置確保每次用戶登錄時,PAM模塊會自動加載limits.conf中的資源限制。

3. 驗證操作系統限制

以Oracle用戶登錄后,使用ulimit命令驗證限制是否生效:

ulimit -Su  # 查看Oracle用戶的進程數軟限制
ulimit -Hu  # 查看Oracle用戶的進程數硬限制
ulimit -Sn  # 查看Oracle用戶的打開文件數軟限制
ulimit -Hn  # 查看Oracle用戶的打開文件數硬限制

輸出結果應與limits.conf中的配置一致。

二、Oracle數據庫級資源限制配置(PROFILE)

數據庫級的資源限制通過PROFILE對象實現,用于控制用戶對數據庫資源的會話級或調用級使用,如CPU時間、邏輯讀、會話數等。

1. 查看默認PROFILE

Oracle數據庫默認存在DEFAULT PROFILE,所有未顯式分配PROFILE的用戶均使用該配置??赏ㄟ^以下SQL查看DEFAULT PROFILE的資源限制:

SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_type = 'KERNEL';
  • 常見資源參數
    • SESSIONS_PER_USER:每個用戶的最大并發會話數(默認UNLIMITED);
    • CPU_PER_SESSION:每個會話的CPU時間限制(單位:百分之一秒,默認UNLIMITED);
    • LOGICAL_READS_PER_SESSION:每個會話的邏輯讀限制(單位:數據塊,默認UNLIMITED);
    • CONNECT_TIME:會話最大連接時間(單位:分鐘,默認UNLIMITED);
    • FAILED_LOGIN_ATTEMPTS:登錄失敗鎖定賬戶的嘗試次數(默認10);
    • PASSWORD_LIFE_TIME:密碼有效期(單位:天,默認180)。

2. 修改默認PROFILE

若需調整默認限制,可使用ALTER PROFILE命令(以限制密碼有效期為例):

ALTER PROFILE DEFAULT LIMIT 
    FAILED_LOGIN_ATTEMPTS 6,          -- 登錄失敗6次后鎖定賬戶
    PASSWORD_LIFE_TIME 90,            -- 密碼有效期90天
    PASSWORD_REUSE_TIME 180;          -- 密碼180天內不可重用

該修改會影響所有使用DEFAULT PROFILE的用戶。

3. 創建自定義PROFILE并分配給用戶

若需為特定用戶(如scott)設置更嚴格的限制,可創建自定義PROFILE:

-- 創建名為'test_profile'的PROFILE
CREATE PROFILE test_profile LIMIT 
    SESSIONS_PER_USER 5,              -- 最大并發會話數5
    CPU_PER_SESSION 10000,            -- 每個會話CPU時間100秒
    LOGICAL_READS_PER_SESSION 1000,   -- 每個會話邏輯讀1000塊
    CONNECT_TIME 30,                  -- 最大連接時間30分鐘
    FAILED_LOGIN_ATTEMPTS 3,          -- 登錄失敗3次后鎖定
    PASSWORD_LIFE_TIME 30;            -- 密碼有效期30天

-- 將'test_profile'分配給'scott'用戶
ALTER USER scott PROFILE test_profile;

創建后,scott用戶的資源使用將受test_profile限制。

4. 啟用資源限制

Oracle數據庫默認不強制執行PROFILE中的資源限制resource_limit參數為FALSE),需修改該參數使其生效:

ALTER SYSTEM SET resource_limit = TRUE SCOPE=SPFILE;

修改后需重啟數據庫使參數生效:

# 重啟Oracle數據庫(以Oracle 19c為例)
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
STARTUP;

重啟后,PROFILE中的資源限制將對所有用戶生效。

注意事項

  • 操作系統級限制是數據庫運行的基礎,需優先配置;
  • 數據庫級限制需結合業務需求調整,避免過度限制影響數據庫性能;
  • 修改limits.conf后需重新登錄用戶,修改resource_limit后需重啟數據庫;
  • 定期監控資源使用情況(如v$session、v$process視圖),根據實際情況調整限制。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女