温馨提示×

Ubuntu Oracle资源限制怎么配置

小樊
59
2025-08-11 22:09:47
栏目: 云计算

在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  

二、Oracle用户资源限制

编辑 /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      # 软限制:栈大小(单位:KB)  

确保PAM模块生效,在 /etc/pam.d/login/etc/pam.d/sshd 中添加:

session required pam_limits.so  

三、Oracle实例内存参数配置

通过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使用情况  
    

注意事项

  • 生产环境建议根据实际负载调整参数,避免过度分配资源。
  • 若使用Docker部署Oracle,可通过--shm-size参数设置共享内存大小(如--shm-size=2g)。
  • 配置前建议备份相关文件,并参考Oracle官方文档验证参数兼容性。

0