在Ubuntu上配置Oracle資源限制,需分別調整系統內核參數和Oracle用戶資源限制,具體步驟如下:
編輯 /etc/sysctl.conf
文件,添加或修改以下參數(根據系統內存調整數值):
# 內存相關參數
kernel.shmall = 2097152
kernel.shmmax = 2147483648 # 最大共享內存(建議設置為物理內存的50%-80%)
kernel.shmmni = 4096
fs.file-max = 65536 # 最大文件描述符數
net.ipv4.ip_local_port_range = 9000 65500 # 可用端口范圍
應用配置:
sudo sysctl -p
編輯 /etc/security/limits.conf
文件,為Oracle用戶(如oracle
)添加以下限制:
oracle soft nproc 2047 # 軟限制:最大進程數
oracle hard nproc 16384 # 硬限制:最大進程數
oracle soft nofile 1024 # 軟限制:最大文件描述符數
oracle hard nofile 65536 # 硬限制:最大文件描述符數
oracle soft stack 10240 # 軟限制:棧大?。▎挝唬篕B)
確保PAM模塊生效,在 /etc/pam.d/login
和 /etc/pam.d/sshd
中添加:
session required pam_limits.so
通過SQL命令或SPFILE配置內存參數(以SPFILE為例):
-- 自動內存管理(AMM)
ALTER SYSTEM SET memory_target=8G SCOPE=SPFILE;
ALTER SYSTEM SET memory_max_target=16G SCOPE=SPFILE;
-- 或手動配置SGA/PGA
ALTER SYSTEM SET sga_target=4G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
重啟數據庫使配置生效:
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
STARTUP;
sysctl -a | grep shm
sysctl -a | grep file-max
su - oracle
ulimit -n # 查看文件描述符限制
ulimit -u # 查看進程數限制
SELECT * FROM v$sgainfo; -- 查看SGA使用情況
SELECT * FROM v$pga_aggregate_target_advice; -- 查看PGA使用情況
--shm-size
參數設置共享內存大?。ㄈ?code>--shm-size=2g)。