温馨提示×

Linux下Oracle如何启动

小樊
34
2026-08-24 19:39:16
栏目: 云计算

在 Linux 下启动 Oracle 数据库,通常需要 操作系统用户 oracle 来执行。下面按 最常见、标准流程 给你说明。


一、前提条件

  • 已安装 Oracle Database(单机 / RAC 均可参考)
  • 使用 oracle 用户 操作
  • 知道 ORACLE_SID(数据库实例名)

二、启动 Oracle 数据库的标准步骤

1️⃣ 切换到 oracle 用户

su - oracle

2️⃣ 设置环境变量(如有必要)

如果未自动配置,可手动设置:

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

✅ 建议写在 .bash_profile 中,避免每次手动执行


3️⃣ 进入 SQL*Plus

sqlplus / as sysdba

4️⃣ 启动数据库(分三种情况)

✅ 正常启动(最常用)

startup

执行过程大致为:

  1. 启动实例(nomount)
  2. 挂载数据库(mount)
  3. 打开数据库(open)

✅ 仅启动实例(不挂载数据库)

startup nomount

常用于:

  • 创建数据库
  • 恢复操作

✅ 启动并挂载数据库(不打开)

startup mount

常用于:

  • 备份恢复
  • 修改数据库运行模式

5️⃣ 启动监听(非常重要)

数据库启动后,客户端才能连接:

lsnrctl start

查看监听状态:

lsnrctl status

三、验证数据库是否启动成功

查看数据库状态

select status from v$instance;

常见状态:

  • OPEN ✅(正常)
  • MOUNTED
  • STARTED

查看数据库是否打开

select open_mode from v$database;

结果应为:

READ WRITE

四、常见启动失败及处理

❌ ORA-01081: cannot start already-running ORACLE

说明数据库已经启动,先关闭:

shutdown immediate;
startup;

❌ ORA-12514: TNS:listener does not currently know of service

通常是监听未启动或服务未注册:

lsnrctl start

或手动注册:

alter system register;

五、关闭数据库(补充)

shutdown immediate;

其他关闭方式:

  • shutdown normal
  • shutdown transactional
  • shutdown abort(强制,慎用)

六、启动顺序总结(记住这个就够了)

1. 切换到 oracle 用户
2. sqlplus / as sysdba
3. startup
4. lsnrctl start

如果你用的是:

  • Oracle 19c / 12c / 11g
  • CDB / PDB
  • RAC
  • Docker / 云平台

可以告诉我,我可以给你更精确的启动方式。

0