文章目录
- 一、 Windows 下的 Oracle 服务架构
- 1. 服务与进程分类图
- 2. 服务详解与“省内存”建议
- 二、 核心原理:连接方式与监听器
- 1. 连接路径流程图
- 三、 重点解析:sqlplus 的两种工作模式
- ️ 模式一:本地特权连接 (Bequeath Protocol)
- 🅱️ 模式二:网络连接 (TCP/IP)
- 四、 总结对照表与核心结论
- 1. 常见工具连接方式对照
- 2. 核心结论 (一句话记忆)
一、 Windows 下的 Oracle 服务架构
在 Windows 环境中,Oracle 的运行依赖于系统服务。你可以把服务看作是控制 Oracle 各个组件(进程)的“开关”。
1. 服务与进程分类图
2. 服务详解与“省内存”建议
| 服务名称 | 对应进程 | 作用与比喻 | 学习期建议 |
|---|---|---|---|
| OracleServiceORCL | oracle.exe | 发动机。加载内存(SGA),启动后台进程。没它数据库就是死的。 | ⚠️必须启动 |
| TNSListener | tnslsnr.exe | 前台/门卫。监听 1521 端口,负责接待外部连接请求。 | ✅用工具必启 |
| OracleDBConsole | oc4j.exe | 网页管理界面。提供浏览器端的 OEM 管理功能。 | ❌关掉(太占内存) |
| 其他服务 | 各种小进程 | 备份(VSS)、定时任务(Job)、分布式事务(MTS)。 | ❌关掉 |
💡省内存大招:
学习时,将所有 Oracle 服务设为**“手动”**。每次学习只启动OracleServiceORCL和TNSListener即可,电脑瞬间流畅!
二、 核心原理:连接方式与监听器
很多初学者会困惑:“为什么有时候不用启动监听器也能连上数据库?”
答案在于:客户端工具不同,走的“通信路径”也不同。
1. 连接路径流程图
三、 重点解析:sqlplus 的两种工作模式
sqlplus是 Oracle 自带的命令行工具,它非常特殊,因为它同时具备两种工作模式:
️ 模式一:本地特权连接 (Bequeath Protocol)
- 命令:
sqlplus / as sysdba - 原理:
- 不走网络。利用操作系统的IPC (进程间通信)或共享内存。
sqlplus.exe进程直接在操作系统层面找到oracle.exe进程,“握手”连接。
- 比喻:你是公司老板(SYS),你有内部通道的钥匙。你直接从老板专用电梯进入办公室,完全不需要经过一楼的前台(监听器)。
- 条件:必须在数据库本机操作,且当前 Windows 用户属于
ORA_DBA组(通常是 Administrator)。
🅱️ 模式二:网络连接 (TCP/IP)
- 命令:
sqlplus system/密码@orcl - 原理:
- 走标准网络协议。客户端发送数据包到服务器的1521 端口。
- 必须由监听器进程 (
tnslsnr.exe)接收请求,验证后,再把请求“转交”给数据库实例。
- 比喻:你是外部访客。你必须走正门,经过**前台(监听器)**登记,前台确认你有预约后,才把你领进办公室。如果前台下班了(监听器没开),你就进不去。
四、 总结对照表与核心结论
1. 常见工具连接方式对照
| 客户端工具 | 典型命令/行为 | 通信方式 | 是否经过监听器? | 适用场景 |
|---|---|---|---|---|
| sqlplus (本地) | sqlplus / as sysdba | IPC / 共享内存 | ❌不需要 | DBA 紧急维护、本机调试 |
| sqlplus (网络) | sqlplus scott/tiger@orcl | TCP/IP (1521) | ✅必须 | 测试网络连通性 |
| PL/SQL Developer | 图形界面登录 | TCP/IP (1521) | ✅必须 | 日常开发、写 SQL |
| SQL Developer | 图形界面登录 | TCP/IP (1521) | ✅必须 | 官方免费图形工具 |
| Java/Python 程序 | JDBC/ODBC 连接 | TCP/IP (1521) | ✅必须 | 应用程序后端连接 |
2. 核心结论 (一句话记忆)
- 服务即进程:启动 Windows 服务,就是启动对应的
.exe进程。 - 监听器是门卫:只有走“网络大门”(TCP/IP)的连接才需要它。
- 本地有后门:
sqlplus / as sysdba走的是操作系统内部的“后门”(IPC),所以哪怕你把监听器关了,只要OracleServiceORCL活着,你就能连上去管理数据库。