33人参与 • 2026-04-19 • Oracle
su - oracle

思考:为何oracle数据库服务已经部署在服务器的前提下,一定能保证oracle用户存在?
答案:在一个已部署oracle数据库的服务器上,
oracle用户必然存在,因为:
安全要求:禁止用
root运行数据库,必须用专用低权限用户(oracle)来隔离风险。权限管理:所有oracle文件的所有者必须是
oracle用户,以此控制访问权限。强制规定:oracle安装程序禁止
root执行,硬性要求必须提前创建好该用户。运行需要:数据库进程需以
oracle身份运行,且需要为其单独配置系统资源限制。
sqlplus / as sysdba

解读:
1) sqlplus
oracle提供的命令行工具,用于执行sql语句和管理数据库
类似于mysql的
mysql命令或postgresql的psql2) /
表示使用操作系统认证(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数据库服务:

exit

lsnrctl status

lsnrctl stop

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

su - oracle

lsnrctl status

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

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;

exit


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

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

补充(可看可不看,多了解了解也没坏处):
- nomount:实例启动,但不挂载数据库(尚未与数据库关联)
- mount:实例已启动,并通过读取其控制文件与数据库关联(该数据库对用户关闭)。
- open:实例已启动,并与一个打开的数据库关联。数据文件中包含的数据可供授权用户访问。


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

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

说白了就是打开数据库的逆过程,没啥难理解的。
监听器是oracle数据库的"网络门卫"和"总机接线员"。
| 方面 | 监听器 | 数据库 | 关系 |
|---|---|---|---|
| 启动顺序 | 先启动 | 后启动 | 数据库启动后自动向监听器注册 |
| 关闭顺序 | 后关闭 | 先关闭 | 数据库关闭时通知监听器下线 |
| 依赖关系 | 不依赖数据库 | 依赖监听器 | 没监听器=无法远程连接 |
| 运行状态 | 可独立运行 | 可独立运行 | 但没监听器只能本地访问 |
简单记忆
没监听器:只能本地连接(
sqlplus / as sysdba)有监听器:可以远程连接(
sqlplus user/pass@ip:port/service)监听器挂了:新远程连接失败,已连接的继续工作
到此这篇关于oracle数据库、监听器的启动、关闭流程的文章就介绍到这了,更多相关oracle监听器启动、关闭内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论