目录
第七步:查看DBeaver是否可以连接这台服务器的Oracle数据库服务
四.详解:监听有什么用?和Oracle数据库服务有什么关系?
一.关闭Oracle数据库服务
第一步:切换到Oracle用户
su - oracle

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

解读:
- sqlplus
Oracle提供的命令行工具,用于执行SQL语句和管理数据库
类似于MySQL的
mysql命令或PostgreSQL的psql
- /
表示使用操作系统认证(OS Authentication)
不需要输入用户名和密码
语法格式:
username/password→ 如果使用/则代表"当前操作系统用户"
- 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)监听器挂了:新远程连接失败,已连接的继续工作

