Ubuntu下Oracle数据库启动失败的排查与修复
一、快速自检与定位
source ~/.bashrc 或相应 profile 使其生效。lsnrctl status;若未运行,先 lsnrctl start,并核对 $ORACLE_HOME/network/admin/listener.ora 中 HOST/PORT(默认端口 1521)是否正确。ps -ef | grep ora_,确认是否有 pmon 进程;若无,说明实例未起。sqlplus / as sysdba 进入 SQL*Plus,观察当前实例状态与告警日志位置。tnsping 或客户端测试连通性。二、常见错误与对应修复
startup。lsnrctl start,再用 netstat -tulpen | grep 1521 检查端口占用并释放,必要时调整 listener.ora 的 HOST/PORT 后重启监听。sqlplus/lsnrctl 报 “command not found” 或 “ORACLE_SID not defined”,需在 ~/.bashrc 或 ~/.profile 中正确导出 ORACLE_HOME、ORACLE_SID、PATH、LD_LIBRARY_PATH 并 source 生效。dbstart $ORACLE_HOME。rman target /crosscheck archivelog all;delete noprompt expired archivelog all;delete noprompt archivelog all completed before 'sysdate - 7';三、标准启动与验证流程
lsnrctl start(确认日志无报错,端口 1521 处于监听)。dbstart $ORACLE_HOME(需保证 /etc/oratab 配置正确)。sqlplus / as sysdba → startup(若需先挂载再打开可用 startup mount → alter database open)。sqlplus / as sysdba 执行 select status from v$instance; 应为 OPEN。tnsping <服务名> 或客户端连接串测试。emctl start dbconsole(若报时区不一致,先 emctl resetTZ agent 再启动)。四、仍未恢复时的定位材料与后续建议