在 Ubuntu 上 Oracle 起不来,常见原因和排查思路如下,按从快到细的顺序来:
先确认是哪一种“启动不了”:
# 用 oracle 用户
su - oracle
sqlplus / as sysdba
startup
把报错内容记下来,例如:
ORA-01078ORA-27101ORA-00845Linux-x86_64 Error: 13: Permission deniedlistener not startedlsnrctl status
lsnrctl start
如果报错:
TNS-12541: TNS:no listenerTNS-12555: TNS:permission denied→ 一般是 oracle 用户没权限 或 ORACLE_HOME 配错
确认 oracle 用户下:
echo $ORACLE_HOME
echo $ORACLE_SID
echo $PATH
典型应该类似:
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
没配就加到:
~/.bash_profile
然后:
source ~/.bash_profile
df -h /dev/shm
如果太小(比如 < 1G):
临时:
mount -o remount,size=2G /dev/shm
永久(/etc/fstab):
tmpfs /dev/shm tmpfs defaults,size=2G 0 0
sqlplus / as sysdba
startup nomount
报错如:
ORA-01078: failure in processing system parametersSPFILE or PFILE not found检查:
ls $ORACLE_HOME/dbs/
应该有:
spfile<SID>.orainit<SID>.oraid oracle
确认在 dba 组:
groups oracle
数据文件权限:
ls -l $ORACLE_HOME/dbs
Ubuntu 默认不会自动起 Oracle
手动:
su - oracle
lsnrctl start
sqlplus / as sysdba
startup
# 告警日志
$ORACLE_BASE/diag/rdbms/*/$ORACLE_SID/trace/alert_$ORACLE_SID.log
# 监听日志
$ORACLE_HOME/network/log/listener.log
如果你愿意,可以把下面信息发我,我直接帮你定位:
startup 或 lsnrctl start 的完整报错我可以一步一步带你修 ✅