温馨提示×

linux oracle配置如何优化

小樊
36
2026-10-04 11:04:49
栏目: 云计算

在 Linux 上优化 Oracle 数据库配置,通常从操作系统层、内核参数、文件系统、Oracle 实例参数、资源限制、存储与网络几个方面入手。下面给你一套比较系统、可落地的优化思路(以 Oracle 11g/12c/19c 常见场景为例)。


一、Linux 系统层优化

1. 关闭不必要的服务

减少系统开销:

systemctl disable firewalld
systemctl disable chronyd   # 如不使用

(生产环境防火墙建议用 iptables 白名单,不要直接关)

2. 使用合适的内核版本

  • Oracle 19c 推荐:
    • RHEL/OEL 7.6+
    • RHEL/OEL 8.x
  • 避免使用桌面版,使用 Server 版

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

1. /etc/sysctl.conf 示例(常见优化)

# 内存与共享内存
kernel.shmmax = 68719476736        # 64GB,建议 ≥ SGA
kernel.shmall = 16777216           # shmmax / page_size
kernel.shmmni = 4096

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

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

# 网络
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 65536 4194304

# 交换行为
vm.swappiness = 10
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

生效:

sysctl -p

三、用户资源限制(limits.conf)

编辑 /etc/security/limits.conf:

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft memlock unlimited
oracle hard memlock unlimited

确保使用 pam_limits.so


四、文件系统与存储优化

1. 文件系统推荐

  • XFS(推荐)
  • EXT4(可用,但不如 XFS)

挂载参数示例:

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

2. 磁盘 I/O 优化

  • 数据文件、redo、归档分盘
  • 使用 RAID 10
  • 尽量使用 多路径 + SSD/NVMe

3. 异步 I/O

Oracle 默认使用:

DISK_ASYNCH_IO = TRUE

五、Oracle 实例参数优化(关键)

1. 内存参数

SGA_TARGET = 40G
PGA_AGGREGATE_TARGET = 8G
MEMORY_TARGET = 0   -- 不建议使用自动内存

原则:

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

2. 进程与连接

PROCESSES = 2000
SESSIONS = 2200

3. Redo 日志

  • 每组 ≥ 500MB
  • 至少 3 组
  • 放在高速磁盘

4. 其他优化参数

DB_CACHE_SIZE
SHARED_POOL_SIZE
LOG_BUFFER = 64M
OPEN_CURSORS = 1000

六、NUMA 与 CPU 优化

1. 关闭 NUMA(老版本 Oracle 推荐)

numactl --interleave=all

或 GRUB 中:

numa=off

2. CPU 绑定(可选)

使用 taskset 绑定 Oracle 进程


七、网络优化

  • 使用万兆网卡
  • 调整 TCP 参数(已在 sysctl 中)
  • Listener 与数据库分离(大并发场景)

八、常见性能问题排查工具

  • top / htop
  • iostat -x 1
  • vmstat 1
  • sar
  • sqlplus + AWR 报告
@?/rdbms/admin/awrrpt.sql

九、典型优化顺序建议

  1. 系统资源是否足够(CPU/内存/IO)
  2. 内核参数是否正确
  3. SGA/PGA 是否合理
  4. SQL 是否低效(AWR / SQL Monitor)
  5. 存储是否瓶颈

如果你能告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • Linux 发行版
  • 内存大小 & CPU 核数
  • 主要用途(OLTP / OLAP)

我可以给你一套更精确的配置模板。

0 踩