Oracle 数据库架构解析
Oracle 数据库由两个主要部分组成:实例和数据库。
1. 实例 (Instance): 实例是管理数据库的一组内存结构和后台进程。
- PGA (程序全局区): 存储单个用户进程的数据和控制信息。
-
SGA (系统全局区): 由所有用户进程共享的内存区域。
- Shared Pool: 存储 SQL 语句、执行计划等信息。
- Library Cache: 存储解析后的 SQL 语句和 PL/SQL 代码。
- Data Dictionary Cache: 存储数据库对象的信息。
- Java Pool: 存储 Java 对象和代码。
- Redo Log Buffer: 存储对数据库所做的更改信息。
- Large Pool: 为大型操作(如备份和恢复)提供内存空间。
- Database Buffer Cache: 存储从数据文件读取的数据块。
- Streams Pool: 用于 Oracle Streams 功能。
- Shared Pool: 存储 SQL 语句、执行计划等信息。
-
后台进程: 执行数据库管理任务,例如:
- PMON (进程监控器)
- DBWR (数据库写入器)
- MMON (内存监控器)
- LGWR (日志写入器)
- MMAN (内存管理器)
- CKPT (检查点)
- RECO (恢复)
- ARCn (归档进程)
- SMON (系统监控器)
2. 数据库 (Database): 数据库是存储在磁盘上的物理文件集合,包含实际数据。
- 数据文件: 存储数据库中的表、索引等对象。
- 控制文件: 包含数据库的结构信息和状态信息。
- 重做日志文件: 记录对数据库所做的所有更改,用于数据库恢复。
- 参数文件: 定义数据库的配置参数。
- 密码文件: 存储数据库用户的身份验证信息。
- 归档日志文件: 重做日志文件的副本,用于长期存储和恢复。