Oracle 实例与数据库
Oracle 实例与数据库
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
实例与数据库是 Oracle 核心概念[1]:
实例:内存 + 进程 数据库:物理文件
详细见:Oracle 体系结构概述。
2. 实例
2.1 组成
- SGA(System Global Area)
- 后台进程
- PMON / SMON / DBWn / LGWR / CKPT / ARCn
- 服务器进程
2.2 单实例 vs RAC
| 类型 | 实例 | 共享 |
|---|---|---|
| 单实例 | 1 | 无 |
| RAC | N | 数据库 |
3. 数据库
3.1 物理文件
- 数据文件
- 控制文件
- Redo Log
- 归档日志
- 参数文件
- 密码文件
3.2 逻辑结构
Database
└── Tablespace
└── Segment
└── Extent
└── Block
4. 关系
4.1 一对一
- 单实例
- 一个实例 ↔ 一个数据库
4.2 一对多
- RAC
- 多实例 ↔ 一个数据库
4.3 多对一
- 同一实例多数据库(不推荐)
- 旧版
5. 数据库架构类型
5.1 单实例
- 最常见
- 一台服务器
- 简单
5.2 RAC
- 多实例共享
- 高可用
- 复杂
详细见:Oracle RAC 架构详解。
5.3 Standby(Data Guard)
- 主备
- 灾备
- 同步/异步
详细见:Oracle Data Guard 架构。
6. SGA
6.1 共享
- 所有服务器进程
- 后台进程
- 用户共享
6.2 组件
- Buffer Cache
- Shared Pool
- Redo Log Buffer
- Large Pool
- Java Pool
- Streams Pool
- In-Memory Area
详细见:Oracle 内存管理 SGA/PGA。
7. PGA
7.1 私有
- 每个服务器进程独立
- 不共享
- 自动管理
7.2 组件
- Private SQL Area
- SQL Work Area
- Session Memory
8. 服务器进程
8.1 专用服务器
- 每连接一进程
- OLTP
- 简单
8.2 共享服务器
- 多连接共享
- Dispatcher
- 高并发
详细见:Oracle 网络架构。
9. 数据库文件
9.1 数据文件
- 表空间
- 段
- 区
- 块
9.2 控制文件
- 元数据
- 数据库结构
- 多路复用
9.3 Redo Log
- 事务日志
- 恢复
- 多组多成员
详细见:Oracle 数据库物理结构。
10. 参数文件
10.1 SPFILE
- 二进制
- 动态修改
- 推荐
10.2 PFILE
- 文本
- 静态
- 修改需重启
10.3 转换
CREATE PFILE='/tmp/init.ora' FROM SPFILE;
CREATE SPFILE FROM PFILE='/tmp/init.ora';
11. 密码文件
11.1 创建
orapwd file=$ORACLE_HOME/dbs/orapworcl password=****** entries=10
11.2 用途
- SYSDBA / SYSOPER 认证
- 远程管理
12. 数据字典
12.1 数据字典
- SYSTEM 表空间
- 元数据
- 只读
12.2 动态视图
- v$ 视图
- gv$ 视图(RAC)
- 动态性能
详细见:Oracle 数据字典与动态视图。
13. 启动流程
13.1 NOMOUNT
- 读参数文件
- 启动实例
- SGA + 进程
13.2 MOUNT
- 读控制文件
- 关联数据库
13.3 OPEN
- 打开数据文件
- 打开 Redo Log
- 检查一致性
详细见:Oracle 数据库启动关闭流程详解。
14. 查看
14.1 实例
SELECT instance_name, host_name, version, status, startup_time
FROM v$instance;
14.2 数据库
SELECT name, created, log_mode, open_mode, database_role
FROM v$database;
14.3 SGA
SELECT name, bytes/1024/1024 AS mb FROM v$sgainfo;
15. 实例恢复
15.1 流程
1. SMON 前滚(Redo)
2. 已提交 + 未提交
3. 打开数据库
4. SMON 回滚未提交(Undo)
15.2 MTTR
- 恢复时间
- fast_start_mttr_target
详细见:Oracle 检查点深度解析。
16. 常见坑与排错
16.1 ORA-01078
- 参数文件问题
- 检查 SPFILE / PFILE
16.2 ORA-00205
- 控制文件问题
- 多路复用
16.3 实例 vs 数据库混淆
- 实例:内存 + 进程
- 数据库:文件
- RAC:多实例一数据库
17. 最佳实践
- 理解概念:基础
- SPFILE:现代
- 多路复用:控制文件 / Redo
- ASM:存储
- RAC 高可用:业务关键
- Data Guard 灾备:保护
- 监控实例状态:运维
- 文档化:架构
- 测试恢复:可行
- 定期检查:健康
18. 参考资料
[1] Oracle Database Concepts 19c, “Database and Instance” https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/