温馨提示×

Oracle在Linux如何启动

小樊
41
2026-07-14 08:35:38
栏目: 云计算

在 Linux 上启动 Oracle 数据库 通常包括启动 监听程序(Listener)数据库实例(Instance)。下面按常见场景给你一个完整、可操作的步骤说明。


一、前提条件

  1. 以 Oracle 用户登录
su - oracle
  1. 确认环境变量
echo $ORACLE_HOME
echo $ORACLE_SID

如果没有设置:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

二、启动 Oracle 监听(Listener)

监听用于接收客户端连接。

1️⃣ 启动监听

lsnrctl start

2️⃣ 查看监听状态

lsnrctl status

✅ 看到 READYUNKNOWN 表示监听已启动。


三、启动 Oracle 数据库实例

方法一:使用 SQL*Plus(推荐)

1️⃣ 进入 SQL*Plus

sqlplus / as sysdba

2️⃣ 启动数据库

startup

常用启动方式:

命令 说明
startup 正常启动
startup mount 只挂载,不打开数据库
startup open 打开数据库
startup force 强制启动(异常关闭后)

3️⃣ 查看数据库状态

select status from v$instance;

期望结果:

OPEN

四、关闭数据库(补充)

shutdown immediate

或更强制:

shutdown abort

停止监听:

lsnrctl stop

五、如果是 Oracle RAC(集群)

⚠️ 不要直接用 startup,使用:

srvctl start database -d dbname
srvctl start listener

六、常见问题排查

1️⃣ ORACLE_SID 未设置

ORA-12162: TNS:net service name is incorrectly specified

✅ 解决:

export ORACLE_SID=orcl

2️⃣ 数据库未启动

ORA-01034: ORACLE not available

✅ 解决:执行 startup


3️⃣ 查看 Oracle 进程

ps -ef | grep pmon

七、自动启动(开机自启,可选)

编辑 /etc/oratab

orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y

再编写启动脚本或使用 systemd(我可以帮你写)。


八、总结(最简流程)

su - oracle
lsnrctl start
sqlplus / as sysdba
startup

如果你愿意,可以告诉我:

  • Oracle 版本(11g / 12c / 19c / 21c)
  • 单机还是 RAC
  • 是否报错(完整错误信息)

我可以给你 针对你环境的精确操作步骤

0