Ubuntu系统中Oracle资源限制怎么设置
导读:Ubuntu系统中Oracle资源限制设置步骤 1. 修改系统内核参数(/etc/sysctl.conf) 内核参数决定了系统对Oracle进程的资源分配能力,需调整以下关键参数(根据服务器内存大小调整数值): sudo vim /etc/...
Ubuntu系统中Oracle资源限制设置步骤
1. 修改系统内核参数(/etc/sysctl.conf)
内核参数决定了系统对Oracle进程的资源分配能力,需调整以下关键参数(根据服务器内存大小调整数值):
sudo vim /etc/sysctl.conf
添加或修改以下内容:
# 共享内存设置(shmmax为单个共享内存段最大值,shmall为共享内存总页数)
kernel.shmmax = 物理内存大小(字节) # 如8GB内存设为8589934592(8*1024*1024*1024)
kernel.shmall = 物理内存大小(页) # 如8GB内存设为2097152(8589934592/4096)
# 信号量设置(控制并发进程数)
kernel.sem = 250 32000 100 128 # semmsl(每个信号量集的最大信号量数)、semmns(系统最大信号量数)、semopm(每个semop调用最多操作数)、semmni(系统最大信号量集数)
# 文件描述符设置(系统级最大文件描述符数)
fs.file-max = 6815744
# 端口范围(允许Oracle使用的临时端口范围)
net.ipv4.ip_local_port_range = 9000 65500
# 内存管理(减少swap使用,提高内存利用率)
vm.swappiness = 0
保存后应用配置:
sudo sysctl -p
2. 设置Oracle用户资源限制(/etc/security/limits.conf)
通过limits.conf
限制Oracle用户的进程、文件描述符等资源使用,避免单个用户占用过多系统资源:
sudo vim /etc/security/limits.conf
在文件末尾添加以下内容(针对Oracle用户):
oracle soft nproc 2047 # 每个Oracle用户的最大进程数(软限制,可临时调整至硬限制)
oracle hard nproc 16384 # 每个Oracle用户的最大进程数(硬限制,系统最大值)
oracle soft nofile 1024 # 每个Oracle用户的最大文件描述符数(软限制)
oracle hard nofile 65536 # 每个Oracle用户的最大文件描述符数(硬限制)
保存后退出。
3. 配置PAM模块(/etc/pam.d/login)
确保系统登录时加载limits.conf
中的限制,需修改PAM配置:
sudo vim /etc/pam.d/login
添加以下行(若已存在则无需重复添加):
session required pam_limits.so
4. 设置Oracle用户环境变量(~/.bash_profile或/etc/profile.d/oracle.sh)
为用户设置Oracle环境变量,包括安装目录、SID及资源限制:
sudo su - oracle
vim ~/.bash_profile
添加以下内容(根据实际安装路径调整):
# Oracle环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
# 资源限制(可选,补充limits.conf的设置)
ulimit -n 65536 # 文件描述符数(硬限制)
ulimit -u 16384 # 进程数(硬限制)
保存后使配置生效:
source ~/.bash_profile
5. 创建Oracle专用目录并设置权限
Oracle需要专用目录存储数据文件、日志等,需创建目录并赋予权限:
sudo mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
sudo mkdir -p /u01/app/oracle/oradata
sudo chown -R oracle:oinstall /u01/app/oracle
sudo chmod -R 775 /u01/app/oracle
6. (可选)通过Oracle Profile设置数据库级资源限制
若需更细粒度的数据库资源控制(如会话并发数、CPU时间),可通过PROFILE
对象实现:
-- 登录Oracle数据库(以sysdba身份)
sqlplus / as sysdba
-- 查看默认profile的资源限制
SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_type = 'KERNEL';
-- 修改默认profile的资源限制(示例:限制每个用户的并发会话数为10)
ALTER PROFILE DEFAULT LIMIT SESSIONS_PER_USER 10;
-- 限制单个会话的CPU时间为1000百分之一秒(10秒)
ALTER PROFILE DEFAULT LIMIT CPU_PER_SESSION 1000;
-- 限制会话空闲时间为30分钟
ALTER PROFILE DEFAULT LIMIT IDLE_TIME 30;
-- 启用资源限制(若未启用)
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE SCOPE=SPFILE;
修改后需重启数据库使配置生效:
sudo systemctl restart oracle
以上步骤覆盖了Ubuntu系统中Oracle资源限制的主要配置项,包括系统内核、用户级限制及数据库级控制,可根据实际需求调整参数值。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu系统中Oracle资源限制怎么设置
本文地址: https://pptw.com/jishu/720554.html