Oracle数据库实例是由内存结构(SGA和PGA)及后台进程这两大部分组成。
-
内存结构
-
SGA (System Global Area):这是数据库实例的共享内存区域,所有与该实例连接的进程都可以访问。SGA包含多个内存结构,例如:
- 数据缓冲区(Data Buffer Cache):存储最近使用过的数据块副本,以减少磁盘I/O。
- 共享池(Shared Pool):存储SQL语句解析后的执行计划、PL/SQL代码、数据字典缓存等。
- 重做日志缓冲区(Redo Log Buffer):临时存储待写入重做日志文件的更改信息。
-
PGA (Program Global Area):每个服务器或用户进程拥有的私有内存区域,存储特定会话的数据和控制信息,例如:
- 会话数据
- SQL工作区
- 游标缓存
- 用户排序区
-
-
后台进程:
- Oracle数据库实例启动时会创建一组后台进程来完成诸如数据写入、日志写入、进程监控、系统监控、检查点设定等各种管理工作。常见的后台进程包括:
- PMON (Process Monitor):监控其他后台进程并在它们异常终止时进行清理和重启。
- SMON (System Monitor):负责实例恢复、空间管理和其他维护任务。
- LGWR (Log Writer):将重做日志缓冲区的内容及时写入到重做日志文件中。
- DBWR (Database Writer):将数据缓冲区中的脏数据写回到数据文件中。
- CKPT (Checkpoint):负责更新控制文件和数据文件头,触发检查点操作。
- Oracle数据库实例启动时会创建一组后台进程来完成诸如数据写入、日志写入、进程监控、系统监控、检查点设定等各种管理工作。常见的后台进程包括: