温馨提示×

ubuntu怎么优化oracle

小樊
46
2026-09-13 23:38:59
栏目: 云计算

在 Ubuntu 上“优化 Oracle”通常包含几个层面:系统层面(OS)优化、Oracle 数据库参数优化、存储与文件系统优化、内存与内核参数优化。下面我按生产环境常见做法给你一个较完整的优化清单(以 Oracle 19c 为例,11g/12c 思路类似)。


一、系统层面优化(Ubuntu)

1. 使用合适的 Ubuntu 版本

  • 推荐使用 Ubuntu 20.04 / 22.04 LTS
  • 使用 Server 版,关闭桌面环境
  • 内核建议:5.15+(22.04)

2. 关闭不必要的服务

systemctl disable bluetooth
systemctl disable cups
systemctl disable avahi-daemon

3. 调整 CPU 性能模式

apt install linux-tools-common
cpupower frequency-set -g performance

二、内核参数优化(非常重要)

编辑 /etc/sysctl.conf

# 共享内存
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

三、用户与资源限制

编辑 /etc/security/limits.conf

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

确保 PAM 加载:

session required pam_limits.so

四、文件系统与存储优化

1. 文件系统

  • 推荐使用 XFS
mkfs.xfs /dev/sdb

挂载参数:

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

2. 磁盘调度器

echo deadline > /sys/block/sdb/queue/scheduler

(SSD 可用 none / mq-deadline


五、Oracle 数据库参数优化

1. 内存参数(SGA / PGA)

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

经验值:

  • SGA ≈ 物理内存的 50–60%
  • PGA ≈ 20–30%

2. 进程与连接

ALTER SYSTEM SET processes=1000 SCOPE=SPFILE;

3. 异步 IO

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

六、NUMA 与大页(HugePages)

1. 禁用 NUMA(或正确绑定)

numactl --interleave=all

2. 配置 HugePages(强烈推荐)

计算后写入 /etc/sysctl.conf

vm.nr_hugepages = 4096

并:

sysctl -p

七、日志与备份优化

  • redo log ≥ 512MB
  • 多组 redo,分散磁盘
  • 开启 ARCHIVELOG
  • 使用 RMAN 增量备份

八、监控与验证

# OS
top, iostat -x 1, vmstat 1

# Oracle
SELECT * FROM v$sysstat;
SELECT * FROM v$sgainfo;

九、常见误区

❌ Ubuntu 不适合 Oracle(其实可以,只是不如 RHEL 官方支持好)
❌ 默认参数直接上生产
❌ 忽视 HugePages 和 async IO


如果你愿意,可以告诉我:

  • Oracle 版本(11g / 19c / 21c)
  • 内存 & CPU 配置
  • 用途(OLTP / OLAP / 测试)

我可以给你针对性参数模板

0