在 Ubuntu 上 Oracle 启动慢,通常不是 Ubuntu 本身的问题,而是 Oracle 自身机制 + 系统配置 导致的。下面按“最常见 → 较少见”的原因给你说明,并给出对应解决办法。
Oracle 启动时会做 主机名 → IP 的反向解析,如果失败会等待超时。
表现
sqlplus 登录慢lsnrctl start 慢startup 慢检查
hostname
cat /etc/hosts
正确示例
127.0.0.1 localhost
192.168.1.100 oracle-host
✅ 主机名必须能在 /etc/hosts 中找到
listener 默认会做名称解析。
解决
在 listener.ora 中加:
DIAG_ADR_ENABLED_LISTENER = OFF
或在 sqlnet.ora 中:
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
如果:
启动时会:
现象
SQL> startup
卡很久
优化
vm.swappiness=1Oracle 官方推荐:
grep Huge /proc/meminfo
如果没有:
✅ 配置 HugePages 可显著提升启动速度
检查
iostat -x 1
如果你用:
systemctl start oracle
而脚本里:
RemainAfterExit会导致“假死”
✅ 建议直接用:
sqlplus / as sysdba
startup
如果上次异常关机:
检查
select * from v$recovery_file_dest;
启动时:
可临时关闭:
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE;
# 1. 主机名解析
hostname
cat /etc/hosts
# 2. 监听状态
lsnrctl status
# 3. 启动数据库
sqlplus / as sysdba
startup
# 4. 查看日志
tail -f $ORACLE_BASE/diag/rdbms/*/*/trace/alert*.log
你可以告诉我:
我可以直接给你 针对性优化方案。