你问的“Ubuntu Oracle 怎么优化”,一般指的是 在 Ubuntu 上运行 Oracle 数据库(通常是 Oracle 19c / 21c / 11g)时的性能优化。下面我从 系统层、Oracle 参数层、存储层、常见坑 四个方面给你一个实用优化清单,偏生产环境。
/etc/sysctl.conf)Oracle 对共享内存、信号量要求很高:
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
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
vm.swappiness = 1
生效:
sysctl -p
/etc/security/limits.conf)Oracle 用户必须改:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
numactl --hardware
如果是多 CPU 服务器:
echo 0 > /proc/sys/vm/zone_reclaim_mode
或 GRUB 加:
numa=off
Oracle 不支持透明大页:
cat /sys/kernel/mm/transparent_hugepage/enabled
关闭:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
ALTER SYSTEM SET sga_target=8G SCOPE=SPFILE;
ALTER SYSTEM SET sga_max_size=8G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
经验值:
ALTER SYSTEM SET processes=1000 SCOPE=SPFILE;
ALTER SYSTEM SET sessions=1500 SCOPE=SPFILE;
ALTER SYSTEM SET log_buffer=16M SCOPE=SPFILE;
ALTER SYSTEM SET fast_start_mttr_target=300 SCOPE=SPFILE;
ALTER SYSTEM SET deferred_segment_creation=FALSE;
ALTER SYSTEM SET audit_trail=NONE SCOPE=SPFILE;
避免:
/ 根目录推荐:
/oradata
/fast_recovery_area
✅ 推荐顺序:
mkfs.xfs /dev/sdb
❌ 不建议:btrfs、zfs(Oracle 官方不支持)
SELECT group#, bytes, members FROM v$log;
Oracle 官方只支持 RHEL / OEL / SLES
✅ 解决:
必须:
timedatectl set-ntp true
或:
apt install chrony
Ubuntu 用 ufw:
ufw allow 1521/tcp
SELECT * FROM v$sgainfo;
SELECT * FROM v$pgastat;
SELECT event, total_waits FROM v$system_event ORDER BY total_waits DESC;
你可以直接告诉我:
我可以给你 一份针对你环境的精确优化参数模板。