温馨提示×

linux oracle配置怎样优化

小樊
45
2026-09-19 14:09:55
栏目: 云计算

下面从 操作系统(Linux)Oracle 数据库 两个层面,系统性地说明常见的 Oracle 在 Linux 上的优化配置要点。适用于 Oracle 11g / 12c / 19c 等主流版本。


一、Linux 系统层优化

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

典型优化参数示例:

# 共享内存(SGA 用)
kernel.shmmax = 68719476736        # 64GB,建议 >= SGA
kernel.shmall = 16777216           # shmmax / page_size
kernel.shmmni = 4096

# 信号量(Oracle 进程并发)
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

# 交换行为
vm.swappiness = 10

执行:

sysctl -p

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

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 firewalld
systemctl stop firewalld

(生产环境可用 iptables 精确控制)


4. 文件系统与磁盘

  • 使用 XFS / EXT4
  • 数据文件、redo、归档分盘
  • 使用 多路径(multipath)
  • 避免 NFS 存放数据文件(性能差)

5. 大页(HugePages,非常重要)

减少 TLB miss,提升 SGA 性能。

grep Huge /proc/meminfo

配置示例(假设 SGA=32G):

vm.nr_hugepages = 16384   # 32GB / 2MB

并在 /etc/security/limits.conf

oracle soft memlock unlimited
oracle hard memlock unlimited

二、Oracle 数据库层优化

1. SGA / PGA 配置

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

建议:

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

2. 使用 AMM / ASMM

  • 11g+ 可用:
MEMORY_TARGET

SGA_TARGET + PGA_AGGREGATE_TARGET

3. Redo Log 优化

  • 至少 3 组
  • 每组 ≥ 512MB
  • 放在高速磁盘
SELECT group#, bytes FROM v$log;

4. 表空间与 IO

  • 使用 ASSM(自动段空间管理)
  • 数据文件分散到不同磁盘
  • 定期收集统计信息
EXEC DBMS_STATS.GATHER_DATABASE_STATS;

5. 参数优化示例

ALTER SYSTEM SET processes=2000 SCOPE=SPFILE;
ALTER SYSTEM SET open_cursors=1000 SCOPE=BOTH;
ALTER SYSTEM SET session_cached_cursors=200 SCOPE=BOTH;
ALTER SYSTEM SET optimizer_index_cost_adj=50 SCOPE=BOTH;

三、常见性能问题排查

-- 等待事件
SELECT event, count(*) FROM v$session_wait
GROUP BY event ORDER BY 2 DESC;

-- TOP SQL
SELECT sql_id, elapsed_time FROM v$sql
ORDER BY elapsed_time DESC;

四、总结(优先级)

  1. ✅ HugePages
  2. ✅ SGA / PGA 合理分配
  3. ✅ 磁盘 IO 分离
  4. ✅ 内核参数正确
  5. ✅ 统计信息及时更新

如果你能提供:

  • Oracle 版本
  • Linux 发行版
  • 内存 / CPU 配置
  • 主要业务类型(OLTP / OLAP)

我可以给你一套 针对性配置方案

0