温馨提示×

ubuntu oracle为何宕机

小樊
48
2026-09-23 02:28:11
栏目: 云计算

Ubuntu 上运行的 Oracle 数据库宕机(崩溃/无法启动) 原因很多,下面按最常见 → 较少见给你一个系统排查思路,你可以对照看。


一、最常见原因(80% 以上)

1️⃣ 内存不足(OOM)

Oracle 很吃内存,Ubuntu 默认可能没调好。

现象

  • 数据库突然消失
  • /var/log/syslog 或 dmesg 中有:
Out of memory: Kill process (oracle)

检查

dmesg | grep -i oom
free -h

解决

  • 减小 SGA/PGA
  • 增加 swap
  • 调大 vm.overcommit_memory

2️⃣ 磁盘空间满

Oracle 对空间极其敏感。

重点目录

  • /u01(Oracle 安装目录)
  • /opt
  • /tmp
  • 归档日志目录(archivelog)

检查

df -h
du -sh /u01/*

解决

  • 清理归档
  • 扩磁盘
  • 开启 RMAN 自动清理

3️⃣ 监听器问题(不是数据库宕,是连不上)

很多人误以为宕机。

检查

lsnrctl status

典型错误

  • TNS-12541
  • no listener

二、Oracle 自身问题

4️⃣ 参数文件损坏(SPFILE / PFILE)

现象

  • startup 直接失败
  • 报错:ORA-01078

检查

sqlplus / as sysdba
startup

解决

  • 用备份 pfile 启动
  • 或重建 spfile

5️⃣ 控制文件 / 数据文件损坏

现象

  • ORA-00205
  • ORA-01157
  • ORA-01110

检查

SELECT * FROM v$recover_file;

6️⃣ 异常关机 / 断电

  • 文件系统不一致
  • redo log 损坏

三、Ubuntu 系统层面问题

7️⃣ 内核参数未配置

Oracle 官方要求:

kernel.sem
kernel.shmmax
kernel.shmall
fs.file-max

检查

sysctl -a | grep sem

8️⃣ ulimit 限制

常见错误

  • ORA-27102
  • Too many open files
ulimit -a

9️⃣ 系统自动更新 / 重启

Ubuntu 自动升级可能:

  • 升级内核
  • 重启服务
last reboot
cat /var/log/apt/history.log

四、快速定位步骤(推荐你照做)

# 1. 看系统日志
dmesg | tail -100
grep oracle /var/log/syslog

# 2. 看 Oracle 日志
cd $ORACLE_BASE/diag/rdbms/*/*/trace
ls -lt alert*.log
tail -200 alert*.log

# 3. 看是否能启动
sqlplus / as sysdba
startup

五、如果你愿意,我可以更精准帮你

你可以直接贴:

  1. Oracle 版本(11g / 12c / 19c)
  2. Ubuntu 版本
  3. 报错信息(ORA-xxxxx)
  4. alert 日志最后 50 行

我可以直接告诉你 为什么宕 + 怎么修。

0 踩