在 Ubuntu 上 Oracle 数据库启动慢,通常不是 Ubuntu 本身的问题,而是 Oracle 在启动过程中依赖的一些资源、配置或环境因素导致的。下面按常见原因 → 排查方法 → 解决建议来说明。
Oracle 启动时会:
如果 /etc/hosts 配置不正确,会卡几十秒甚至几分钟。
✅ 检查:
hostname
ping $(hostname)
✅ 正确做法(必须):
sudo vi /etc/hosts
至少包含:
127.0.0.1 localhost
127.0.1.1 your-hostname
或:
192.168.x.x your-hostname
⚠️ 不要只写 127.0.0.1 localhost 而缺少主机名
lsnrctl start 慢,通常是:
✅ 检查:
lsnrctl status
✅ 建议 listener.ora 中使用 IP 而非主机名:
HOST = 192.168.1.100
Oracle 推荐启用 HugePages,否则:
✅ 检查:
grep Huge /proc/meminfo
✅ 若未使用,可配置 HugePages(推荐)
✅ 检查:
free -h
swapon --show
✅ 建议:
如果:
会导致:
✅ 检查:
iostat -x 1
⚠️ 重要:
常见问题:
✅ 建议使用:
✅ 看启动过程:
sqlplus / as sysdba
startup
✅ 看日志:
tail -f $ORACLE_BASE/diag/rdbms/*/*/trace/alert*.log
| 检查项 | 命令 |
|---|---|
| 主机名解析 | ping $(hostname) |
| /etc/hosts | cat /etc/hosts |
| 内存 | free -h |
| Swap | swapon --show |
| HugePages | grep Huge /proc/meminfo |
| IO | iostat -x 1 |
| 启动卡点 | alert.log |
✅ 只做这三件事,通常就能解决:
/etc/hosts如果你愿意,可以告诉我:
startup 慢 还是 lsnrctl start 慢我可以帮你精确定位并给出配置示例。