温馨提示×

ubuntu oracle怎么调优

小樊
40
2026-09-17 00:11:27
栏目: 云计算

在 Ubuntu + Oracle Database 环境下做调优,通常从 操作系统层、Oracle 实例参数、SQL、存储/IO、监控 几个方面入手。下面给你一套比较实用的调优思路和常见做法(适用于 Oracle 11g/12c/19c)。


一、Ubuntu 系统层调优

1. 内核参数(非常重要)

Oracle 官方对 Linux 有明确要求,Ubuntu 也要改。

编辑:

/etc/sysctl.conf

常见参数示例(按内存调整):

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmax = 17179869184   # 示例:16G
kernel.shmall = 4194304
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

2. 用户限制

编辑:

/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

3. 关闭不必要的服务

减少系统开销:

systemctl disable snapd
systemctl disable bluetooth

4. 文件系统与挂载

Oracle 数据文件建议:

  • 使用 ext4 / xfs
  • 挂载选项:
defaults,noatime,nodiratime

示例:

/dev/sdb1 /u01 ext4 defaults,noatime 0 0

二、Oracle 实例层调优(核心)

1. 内存参数(SGA / PGA)

查看:

SHOW PARAMETER memory_target;
SHOW PARAMETER sga_target;
SHOW PARAMETER pga_aggregate_target;

推荐(物理内存 16G 示例):

ALTER SYSTEM SET memory_target=12G SCOPE=SPFILE;
ALTER SYSTEM SET sga_target=8G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=4G SCOPE=SPFILE;

重启生效:

SHUTDOWN IMMEDIATE;
STARTUP;

2. 调整 Processes / Sessions

SHOW PARAMETER processes;
ALTER SYSTEM SET processes=500 SCOPE=SPFILE;

3. 日志与检查点

减少 IO 压力:

ALTER SYSTEM SET log_checkpoint_interval=0;
ALTER SYSTEM SET fast_start_mttr_target=300;

三、SQL 与索引调优(最常见瓶颈)

1. 找慢 SQL

SELECT * FROM v$sqlarea
ORDER BY elapsed_time DESC
FETCH FIRST 10 ROWS ONLY;

2. 执行计划

EXPLAIN PLAN FOR
SELECT * FROM t WHERE id=1;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

关注:

  • 全表扫描(TABLE ACCESS FULL)
  • 高 COST
  • 索引未使用

3. 建索引示例

CREATE INDEX idx_t_col ON t(col);

四、存储与 IO 调优

1. 数据文件分离

  • 数据文件
  • redo log
  • archivelog
  • temp

放不同磁盘

2. 使用 ASM(推荐生产)

Ubuntu 上也可用,但配置复杂
中小系统可用:

  • 单盘 → xfs
  • 多盘 → LVM

五、监控与诊断工具

1. AWR 报告(最重要)

@?/rdbms/admin/awrrpt.sql

看:

  • DB Time
  • Buffer Hit %
  • Top SQL
  • IO Wait

2. OS 监控

top
iostat -x 1
vmstat 1
free -h

六、常见性能问题速查

现象 可能原因
CPU 高 坏 SQL / 缺索引
IO 高 redo / 全表扫
内存不足 SGA 太小
连接慢 processes 不够
系统卡 swap 使用

七、推荐标准配置(示例)

  • 内存:16G+
  • SGA:60–70% 内存
  • PGA:20–30%
  • 关闭 swap 使用优先

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

  • Oracle 版本(11g / 12c / 19c)
  • Ubuntu 版本
  • 内存大小
  • 主要用途(OLTP / 报表 / 数据仓库)

我可以直接给你一套 可执行的调优参数清单。

0 踩