首页主机资讯Ubuntu系统中Oracle资源限制怎么设置

Ubuntu系统中Oracle资源限制怎么设置

时间2025-10-04 21:10:03发布访客分类主机资讯浏览359
导读: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
Ubuntu中Oracle数据库迁移步骤解析 Oracle在Ubuntu中的权限设置指南

游客 回复需填写必要信息