首先确认Oracle监听服务和数据库实例是否正在运行。使用以下命令查看状态:
# 检查监听服务状态
lsnrctl status
# 检查数据库实例状态(需切换至oracle用户)
su - oracle
sqlplus / as sysdba
SQL> SELECT status FROM v$instance;
若监听未启动,执行lsnrctl start;若数据库未启动,执行startup命令。
Oracle启动依赖ORACLE_HOME(安装目录)、ORACLE_SID(实例名)等环境变量。确保这些变量在oracle用户的.bash_profile中正确设置:
vi ~/.bash_profile
添加或修改以下内容(根据实际路径调整):
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 # 替换为实际安装路径
export ORACLE_SID=orcl # 替换为实际实例名
export PATH=$ORACLE_HOME/bin:$PATH
保存后执行source ~/.bash_profile使配置生效。
若启动时报错“ORACLE_HOME_LISTNER is not SET”,需修改$ORACLE_HOME/bin目录下的dbstart和dbshut脚本:
vi $ORACLE_HOME/bin/dbstart
找到ORACLE_HOME_LISTNER=$1,将其改为ORACLE_HOME_LISTNER=$ORACLE_HOME(同理修改dbshut脚本)。
/etc/oratab文件控制Oracle是否随系统启动。将实例行的最后一个字段从N改为Y(允许自动启动):
vi /etc/oratab
修改前:orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N
修改后:orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y(Y表示允许自动启动)。
推荐使用systemd服务(适用于CentOS 7及以上版本),步骤如下:
/usr/bin/oracle.sh:vi /usr/bin/oracle.sh
内容如下(替换为实际路径):#!/bin/bash
su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
su - oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
赋予执行权限:chmod 777 /usr/bin/oracle.sh。systemd服务文件/etc/systemd/system/oracle19c.service(以Oracle 19c为例):vi /etc/systemd/system/oracle19c.service
内容如下:[Unit]
Description=Oracle Database Service
After=syslog.target network.target
[Service]
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1"
ExecStart=/usr/bin/oracle.sh
[Install]
WantedBy=multi-user.target
启用并启动服务:systemctl enable oracle19c
systemctl start oracle19c
(注:CentOS 6及以下版本可将启动命令添加至/etc/rc.d/rc.local并赋予执行权限。)Oracle默认使用1521端口,若该端口被占用,会导致启动失败。使用以下命令检查端口占用情况:
netstat -tulnp | grep 1521
若发现占用进程,可通过kill -9 <PID>终止该进程,或修改Oracle监听端口(需同步修改listener.ora和tnsnames.ora文件)。
若SELinux处于启用状态,可能阻止Oracle访问资源。可临时禁用SELinux进行测试:
setenforce 0
若问题解决,可通过修改/etc/selinux/config文件永久禁用(需重启系统):
SELINUX=disabled
若上述方法无法解决,需查看Oracle日志获取详细错误信息:
$ORACLE_HOME/network/log/listener.log$ORACLE_BASE/diag/rdbms/<实例名>/<实例名>/trace/alert_<实例名>.log以上方法覆盖了CentOS系统下Oracle启动的常见问题及解决步骤,可根据具体错误信息选择对应方案排查。