在 CentOS 下启动 Oracle 数据库,通常分为 启动监听器(Listener) 和 启动数据库实例 两步。以下以常见的 Oracle 11g/12c/19c 为例(非 RAC、单机环境)。
su - oracle
echo $ORACLE_HOME
echo $ORACLE_SID
如果没有:
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
lsnrctl start
查看监听状态:
lsnrctl status
sqlplus / as sysdba
进入后执行:
startup
若正常,会看到:
ORACLE instance started.
Database mounted.
Database opened.
startup nomount; -- 只启动实例
startup mount; -- 启动并挂载
startup; -- 完全启动
select status from v$instance;
正常应为:
OPEN
shutdown immediate;
ORA-01081说明数据库已在运行,无需启动。
检查:
lsnrctl status
cat $ORACLE_HOME/network/admin/listener.ora
systemctl stop firewalld
# 或开放 1521 端口
firewall-cmd --add-port=1521/tcp --permanent
firewall-cmd --reload
如果你用的是 Oracle 19c 容器 / RAC / 自动开机启动,可以告诉我,我可以给你对应的启动方式。