在 Linux 上调整 Oracle 数据库参数,通常分为 操作系统参数(内核/资源限制) 和 Oracle 数据库参数 两类。下面按实战方式说明。
常见与 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)要求略有不同,建议参考官方文档。
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
适合大内存 SGA:
grep Huge /proc/meminfo
配置示例(在 sysctl.conf):
vm.nr_hugepages = 4096
SQL> show parameter sga;
SQL> show parameter pga;
SQL> show parameter processes;
或:
SELECT name, value FROM v$parameter;
ALTER SYSTEM SET processes=500 SCOPE=MEMORY;
ALTER SYSTEM SET sga_target=4G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
| 参数 | 说明 |
|---|---|
| sga_target | SGA 大小 |
| pga_aggregate_target | PGA 大小 |
| processes | 最大连接进程 |
| sessions | 会话数 |
| open_cursors | 游标数 |
| db_cache_size | 数据缓存 |
| undo_retention | UNDO 保留时间 |
ALTER SYSTEM SET sga_target=6G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
ALTER SYSTEM SET processes=800 SCOPE=SPFILE;
如果你能告诉我:
我可以给你一套 具体参数模板。