温馨提示×

linux oracle怎样调参数

小樊
50
2026-09-13 13:07:32
栏目: 云计算

在 Linux 上调整 Oracle 数据库参数,通常分为 操作系统参数(内核/资源限制) 和 Oracle 数据库参数 两类。下面按实战方式说明。


一、Linux 系统层参数(影响 Oracle 运行)

1. 修改内核参数(/etc/sysctl.conf)

常见与 Oracle 相关的参数:

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmax = 4294967295
kernel.shmall = 1073741824
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

应用配置:

sysctl -p

不同 Oracle 版本(11g / 12c / 19c)要求略有不同,建议参考官方文档。


2. 修改用户资源限制(/etc/security/limits.conf)

Oracle 用户(通常是 oracle):

oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

确保:

/etc/pam.d/login

包含:

session required pam_limits.so

3. 大页(HugePages,可选但推荐)

适合大内存 SGA:

grep Huge /proc/meminfo

配置示例(在 sysctl.conf):

vm.nr_hugepages = 4096

二、Oracle 数据库参数(核心)

1. 查看参数

SQL> show parameter sga;
SQL> show parameter pga;
SQL> show parameter processes;

或:

SELECT name, value FROM v$parameter;

2. 修改参数(内存 / spfile)

(1)只改内存(重启失效)

ALTER SYSTEM SET processes=500 SCOPE=MEMORY;

(2)改 spfile(永久)

ALTER SYSTEM SET sga_target=4G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;

(3)重启数据库

SHUTDOWN IMMEDIATE;
STARTUP;

3. 常见重要参数

参数 说明
sga_target SGA 大小
pga_aggregate_target PGA 大小
processes 最大连接进程
sessions 会话数
open_cursors 游标数
db_cache_size 数据缓存
undo_retention UNDO 保留时间

三、调优建议顺序

  1. 先调 Linux 内核 & limits
  2. 再调 SGA / PGA
  3. 最后调 连接数 / 游标
  4. 用 AWR / STATSPACK 看瓶颈

四、示例:19c 常见初始化

ALTER SYSTEM SET sga_target=6G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
ALTER SYSTEM SET processes=800 SCOPE=SPFILE;

如果你能告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 内存大小
  • 用途(OLTP / 数据仓库)

我可以给你一套 具体参数模板。

0 踩