温馨提示×

如何优化ubuntu oracle

小樊
44
2026-10-10 16:51:27
栏目: 云计算

“优化 Ubuntu 上的 Oracle”通常涉及系统层(OS)+ Oracle 数据库层(DB)+ 资源与参数三方面的调优。下面给你一份实用、可落地的优化清单,适用于 Oracle 11g / 12c / 19c 在 Ubuntu(20.04/22.04)上的典型场景。


一、Ubuntu 系统层优化(非常重要)

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

Oracle 对共享内存、文件句柄、异步 IO 很敏感。

# 共享内存
kernel.shmmax = 68719476736
kernel.shmall = 16777216
kernel.shmmni = 4096

# 信号量
kernel.sem = 250 32000 100 128

# 文件句柄
fs.file-max = 6815744

# 网络
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

# 异步 IO
fs.aio-max-nr = 1048576

执行:

sysctl -p

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

Oracle 用户必须放开限制:

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

3. 关闭不必要的服务

减少系统开销:

systemctl disable snapd
systemctl disable bluetooth
systemctl disable cups

4. 文件系统建议

  • ✅ 推荐使用 XFS
  • ❌ 不推荐 Btrfs
  • 数据文件与日志文件分盘
mkfs.xfs /dev/sdb

挂载参数示例:

/dev/sdb /u01 xfs defaults,noatime,nodiratime 0 0

二、Oracle 数据库层优化

1. 内存参数(SGA / PGA)

假设服务器 32G 内存:

ALTER SYSTEM SET sga_target = 16G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target = 4G SCOPE=SPFILE;
ALTER SYSTEM SET memory_target = 0 SCOPE=SPFILE;

生产环境不建议用 AMM(memory_target)


2. 进程与连接数

ALTER SYSTEM SET processes = 1000 SCOPE=SPFILE;
ALTER SYSTEM SET sessions = 1100 SCOPE=SPFILE;

3. 重做日志(Redo Log)

  • 每组至少 200–500MB
  • 至少 3 组
  • 放在高速磁盘(SSD)
SELECT group#, bytes, status FROM v$log;

4. 自动维护任务

关闭非必要自动任务(可选):

EXEC DBMS_AUTO_TASK_ADMIN.DISABLE;

三、IO 与性能专项优化

1. 开启异步 IO

ALTER SYSTEM SET filesystemio_options = SETALL SCOPE=SPFILE;
ALTER SYSTEM SET disk_asynch_io = TRUE SCOPE=SPFILE;

2. 使用 HugePages(强烈推荐)

减少 TLB miss:

# 计算 hugepages 数量
grep Hugepagesize /proc/meminfo

示例(16G SGA):

vm.nr_hugepages = 8192

四、监控与诊断工具

系统

top
iostat -x 1
vmstat 1

Oracle

SELECT * FROM v$sysstat;
SELECT * FROM v$session_wait;
SELECT * FROM v$sql ORDER BY elapsed_time DESC;

五、常见性能问题速查

问题 可能原因
CPU 高 全表扫描、缺少索引
IO 高 Redo 小、未用 AIO
内存不足 SGA 配置不合理
连接慢 listener、DNS 问题

六、如果你愿意,我可以进一步帮你

你可以告诉我:

  1. Oracle 版本(11g / 19c?)
  2. Ubuntu 版本
  3. 主要用途(OLTP / 报表 / 测试)
  4. 当前性能瓶颈(CPU / IO / 内存)

我可以直接给你定制化参数方案。

0 踩