Oracle数据库、监听器的启动、关闭流程完整记录

 更新时间:2026年04月19日 11:39:28   作者:缴鸿剑Jackson  
监听器是Oracle数据库的重要组件,它负责接收客户端的连接请求并转发到相应的数据库实例,这篇文章主要介绍了Oracle数据库、监听器的启动、关闭流程的相关资料,需要的朋友可以参考下

一.关闭Oracle数据库服务

第一步:切换到Oracle用户

su - oracle

思考:为何Oracle数据库服务已经部署在服务器的前提下,一定能保证oracle用户存在?

答案:在一个已部署Oracle数据库的服务器上,oracle用户必然存在,因为:

  • 安全要求:禁止用root运行数据库,必须用专用低权限用户(oracle)来隔离风险。

  • 权限管理:所有Oracle文件的所有者必须是oracle用户,以此控制访问权限。

  • 强制规定:Oracle安装程序禁止root执行,硬性要求必须提前创建好该用户。

  • 运行需要:数据库进程需以oracle身份运行,且需要为其单独配置系统资源限制。

第二步:登录Oracle数据库

sqlplus / as sysdba

解读:

1) sqlplus

  • Oracle提供的命令行工具,用于执行SQL语句和管理数据库

  • 类似于MySQL的mysql命令或PostgreSQL的psql

2) /

  • 表示使用操作系统认证(OS Authentication)

  • 不需要输入用户名和密码

  • 语法格式:username/password → 如果使用/则代表"当前操作系统用户"

3) as sysdba

  • 指定以SYSDBA(系统管理员)角色连接

  • SYSDBA拥有最高权限,可以:

    • 启动/关闭数据库(STARTUP/SHUTDOWN)

    • 创建/删除数据库

    • 管理归档模式

    • 执行不完全恢复

    • 管理用户权限

第三步:查看数据库当前状态

select status from v$instance;

可见此时Oracle数据库服务处于打开状态,符合我们的预期。

第四步:关闭数据库

shutdown immediate

再次查看数据库状态

select status from v$instance;

查看其他电脑能否连接该服务器的oracle数据库服务:

第五步:退出Oracle数据库

exit

第六步:关闭监听(可选)

1.查看监听状态

lsnrctl status

2.关闭监听

lsnrctl stop

在用DBeaver连接一下,看看效果:

二.打开Oracle数据库服务

第一步:切换到Oracle用户

su - oracle

第二步:打开监听

1.查看监听状态

lsnrctl status

可见此时监听器是关闭的,我们此时要把监听打开。

2.打开监听

lsnrctl start

第三步:登录Oracle数据库

sqlplus / as sysdba

第四步:查看数据库当前状态

select status from v$instance;

可见此时Oracle数据库不可用,说明状态是关闭的,我们此时要把它打开。

第五步:打开数据库

startup

解读:

startup 命令 = 启动实例  +  挂载数据库   +  打开数据库
        ↓                    ↓                   ↓                         ↓
   执行结果      内存分配     读取控制文件    打开数据文件

startup执行步骤输出显示的内容含义
1. 启动实例ORACLE instance started.启动后台进程,分配内存结构
2. 分配内存Total System Global Area...
Fixed Size...
Variable Size...
Database Buffers...
Redo Buffers...
SGA各部分内存详细分配情况
3. 挂载数据库Database mounted.读取控制文件,找到数据文件位置
4. 打开数据库Database opened.打开所有数据文件和重做日志文件

再次查看数据库状态

select status from v$instance;

第六步:退出Oracle数据库

exit

第七步:查看DBeaver是否可以连接这台服务器的Oracle数据库服务

三.详解:启停流程

1.打开Oracle数据库

打开流程:执行startup命令,打开Oracle数据库。

上图就完全对应下图的三个阶段:启动实例、挂载数据库、打开数据库。

补充(可看可不看,多了解了解也没坏处):

  • NoMount:实例启动,但不挂载数据库(尚未与数据库关联
  • Mount:实例已启动,并通过读取其控制文件与数据库关联(该数据库对用户关闭)。
  • Open:实例已启动,并与一个打开的数据库关联。数据文件中包含的数据可供授权用户访问

2.关闭Oracle数据库

关闭流程:执行shutdown immediate命令,关闭Oracle数据库。

上图就完全对应下图的三个阶段:关闭数据库、取消挂载数据库、关闭实例。

说白了就是打开数据库的逆过程,没啥难理解的。

四.详解:监听有什么用?和Oracle数据库服务有什么关系?

监听器是Oracle数据库的"网络门卫"和"总机接线员"。

方面监听器数据库关系
启动顺序先启动后启动数据库启动后自动向监听器注册
关闭顺序后关闭先关闭数据库关闭时通知监听器下线
依赖关系不依赖数据库依赖监听器没监听器=无法远程连接
运行状态可独立运行可独立运行但没监听器只能本地访问

简单记忆

  • 没监听器:只能本地连接(sqlplus / as sysdba

  • 有监听器:可以远程连接(sqlplus user/pass@ip:port/service

  • 监听器挂了:新远程连接失败,已连接的继续工作

到此这篇关于Oracle数据库、监听器的启动、关闭流程的文章就介绍到这了,更多相关Oracle监听器启动、关闭内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • oracle日志操作模式(归档模式和非归档模式的利与弊)

    oracle日志操作模式(归档模式和非归档模式的利与弊)

    在Oracle数据库中,主要有两种日志操作模式,分别为非归档模式与归档模式。默认情况下,数据库采用的是非归档模式。作为一个合格的数据库管理员,应当深入了解这两种日志操作模式的特点,并且在数据库建立时,选择合适的操作模式
    2013-01-01
  • Oracle实现细粒度访问控制的步骤

    Oracle实现细粒度访问控制的步骤

    细粒度访问控制是Oracle数据库中用于提供行级和列级安全控制的强大功能,本文主要给大家介绍了Oracle实现细粒度访问控制的步骤,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-09-09
  • oracle中如何删除亿级数据

    oracle中如何删除亿级数据

    这篇文章主要介绍了oracle中如何删除亿级数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Oracle9i在Win2k环境下的完全卸载

    Oracle9i在Win2k环境下的完全卸载

    Oracle9i在Win2k环境下的完全卸载...
    2007-03-03
  • Oracle 数据库 临时数据的处理方法

    Oracle 数据库 临时数据的处理方法

    在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。
    2009-06-06
  • oracle锁表与解锁表的实现方法

    oracle锁表与解锁表的实现方法

    这篇文章主要介绍了oracle锁表与解锁表的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Oracle中sql语句(+)符号代表连接的使用讲解

    Oracle中sql语句(+)符号代表连接的使用讲解

    今天小编就为大家分享一篇关于Oracle中sql语句(+)符号代表连接的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Oracle进阶DECODE函数使用详解

    Oracle进阶DECODE函数使用详解

    这篇文章介绍了Oracle进阶DECODE函数的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Oracle表空间查看sql使用情况

    Oracle表空间查看sql使用情况

    我们在日常工作中查看表空间的使用情况大多数都是使用DBA。下面脚本之家小编给大家带来了oracle表空间查看sql使用情况的方法步骤,需要的童鞋参考下
    2016-05-05
  • oracle误drop/update操作后的数据恢复测试

    oracle误drop/update操作后的数据恢复测试

    本人主要是对drop/update数据后,在允许有时间内进行数据恢复,操作性强,比较实用。不对理论进行讲诉,需要的朋友可以参考下
    2015-08-08

最新评论