oracle

关注公众号 jb51net

关闭
首页 > 数据库 > oracle > Oracle监听器启动、关闭

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

作者:缴鸿剑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监听器启动、关闭内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文