“优化 Ubuntu 上的 Oracle”通常涉及系统层(OS)、Oracle 数据库层(参数/内存/IO)、以及运维层面。下面我按实战可操作的方式,分层给你一个优化清单。
编辑 /etc/sysctl.conf:
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
编辑 /etc/security/limits.conf:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
⚠ 注意:Ubuntu 用 systemd,还要确认:
/etc/systemd/system/oracle.service
中加上:
LimitNOFILE=65536
systemctl disable snapd
systemctl disable bluetooth
none 或 mq-deadlineecho none > /sys/block/sda/queue/scheduler
ALTER SYSTEM SET sga_target=4G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
经验值:
ALTER SYSTEM SET processes=500 SCOPE=SPFILE;
ALTER DATABASE ARCHIVELOG;
定期执行:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
SELECT * FROM v$sql ORDER BY elapsed_time DESC;
SELECT *EXPLAIN PLAN✅ Ubuntu 不是 Oracle 官方首选 OS
✅ 建议使用:
如果你是在 Docker / 虚拟机 / 云服务器 上跑,优化重点会不同。
你可以告诉我:
我可以直接给你定制优化方案或参数模板。