在 Ubuntu 上排查 Oracle 报错,一般可以按下面几个方向来查。我按「从快到慢、从外到内」给你一套实用流程。
systemctl status oracle
# 或(取决于安装方式)
systemctl status oracle-xe
systemctl status orcl
常见服务名:
oracle-xe(Oracle XE)orcl(企业版 SID)如果没启动:
systemctl start oracle-xe
lsnrctl status
如果报错:
TNS-12541:监听没起TNS-12545:地址不对启动监听:
lsnrctl start
sqlplus / as sysdba
如果连不上,看错误码,例如:
ORA-01034:数据库未启动ORA-27101:共享内存问题启动数据库:
startup;
路径一般在:
$ORACLE_BASE/diag/rdbms/<sid>/<sid>/trace/alert_<sid>.log
例如:
/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
实时看:
tail -f alert_orcl.log
$ORACLE_BASE/diag/tnslsnr/<host>/listener/trace/listener.log
TNS:listener does not know of service ✅ 解决:
alter system register;
MEMORY_TARGET not supported on this system ✅ 解决:
mount -o remount,size=2G /dev/shm
或改 init.ora 去掉 MEMORY_TARGET
TNS:net service name is incorrectly specified ✅ 检查:
echo $ORACLE_SID
要和你数据库 SID 一致
✅ 用:
./runInstaller -silent
echo $ORACLE_HOME
echo $ORACLE_SID
echo $PATH
建议 ~/.bashrc:
export ORACLE_HOME=/u01/app/oracle/product/21c/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
你可以直接把 完整报错信息 发出来,例如:
ORA-xxxxx: xxxxx
或者贴:
我可以精准定位。