温馨提示×

怎样优化ubuntu oracle

小樊
44
2026-09-23 02:10:11
栏目: 云计算

“优化 Ubuntu 上的 Oracle”通常涉及系统层(OS)、Oracle 数据库层(参数/内存/IO)、以及运维层面。下面我按实战可操作的方式,分层给你一个优化清单。


一、Ubuntu 系统层优化(必须做)

1. 内核参数(Oracle 强依赖)

编辑 /etc/sysctl.conf

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmax = 4294967295
kernel.shmall = 1073741824
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 nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240

⚠ 注意:Ubuntu 用 systemd,还要确认:

/etc/systemd/system/oracle.service

中加上:

LimitNOFILE=65536

3. 关闭无关服务(提升稳定性)

systemctl disable snapd
systemctl disable bluetooth

4. 文件系统与 IO 调度

  • 推荐使用 XFS
  • IO 调度器设为 nonemq-deadline
echo none > /sys/block/sda/queue/scheduler

二、Oracle 数据库层优化(核心)

1. 内存参数(SGA / PGA)

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

经验值:

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

2. 进程与连接数

ALTER SYSTEM SET processes=500 SCOPE=SPFILE;

3. 日志与归档

  • 生产环境必须开归档
  • 但归档目录要独立磁盘
ALTER DATABASE ARCHIVELOG;

4. 统计信息(非常关键)

定期执行:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

三、SQL 与性能优化

1. 慢 SQL 定位

SELECT * FROM v$sql ORDER BY elapsed_time DESC;

2. 索引优化

  • 避免 SELECT *
  • 大表必须建索引
  • 使用 EXPLAIN PLAN

四、备份与稳定性

  • 使用 RMAN
  • 自动备份脚本 + cron
  • 监控表空间使用率

五、Ubuntu 特有注意点(很重要)

✅ Ubuntu 不是 Oracle 官方首选 OS
✅ 建议使用:

  • Oracle 19c +
  • 或改用 Oracle Linux / RHEL

如果你是在 Docker / 虚拟机 / 云服务器 上跑,优化重点会不同。


六、我可以继续帮你

你可以告诉我:

  1. Oracle 版本(11g / 19c / 21c?)
  2. 用途(开发 / 生产 / 测试)
  3. 服务器配置(CPU / 内存 / 磁盘)
  4. 当前主要问题(慢 / 崩 / 连接不上)

我可以直接给你定制优化方案或参数模板

0