Linux 上 Oracle 启动失败的原因非常多,下面按最常见 → 较少见的顺序帮你梳理,并给出排查方法。你可以对照看是哪一类。
现象
SQL> startup
ORA-01078: failure in processing system parameters
检查
echo $ORACLE_SID
echo $ORACLE_HOME
解决
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
现象
ORA-12541: TNS:no listener
解决
lsnrctl start
lsnrctl status
现象
sqlplus / as sysdba
SQL> startup
如果卡住或报错,看后面错误码。
报错
ORA-01078
LRM-00109: could not open parameter file
解决
# 找 pfile
ls $ORACLE_HOME/dbs/
# 用 pfile 启动
sqlplus / as sysdba
SQL> startup pfile='/u01/app/oracle/product/19.3.0/dbhome_1/dbs/initorcl.ora'
如果能起,再重建 spfile:
create spfile from pfile;
报错
ORA-00205: error in identifying control file
检查
show parameter control_files;
df -h
du -sh /u01
常见报错
ORA-01157
ORA-01110
检查
id oracle
ls -l $ORACLE_HOME/bin/oracle
正确权限
chown -R oracle:oinstall /u01
chmod 6751 $ORACLE_HOME/bin/oracle
free -h
ipcs -l
getenforce
systemctl status firewalld
# 1. 看错误
sqlplus / as sysdba
startup
# 2. 看日志
tail -100 $ORACLE_BASE/diag/rdbms/*/*/trace/alert*.log
# 3. 看系统
df -h
ps -ef | grep ora_
你可以把下面信息发我:
alert.log 最后 50 行我可以直接告诉你是哪一步失败了、怎么修。