1 Oracle数据库内存结构
Oracle Instance是Oracle RDBMS的核心之一,负责RDBMS的管理功能。Oracle Instance主要由内存结构和后台进程组成。数据库实例启动后,Oracle数据库会为其分配一块内存区域并启动相关后台进程。该内存区域存储了以下信息:
- 程序代码;
- 已连接会话(session)的信息,即使该session当前并未处于活跃状态;
- 程序执行过程中所需的信息,比如查询(query)的当前状态;
- 进程之间共享和通信的锁(lock data)相关的信息;
- 缓存数据(cached data),比如数据块、重做记录等从磁盘中读取的信息。
1.1 基本内存结构
Oracle数据库中的基本内存结构包括:
- 系统全局区(System global area, SGA),SGA是一组共享内存,其中包含了数据库实例的数据和控制信息。所有的服务器和后台进程都会共享SGA。SGA中的数据包括缓存数据块、共享SQL区等。
- 程序全局区(Program global area, PGA),PGA是非共享的内存区域,其中包含了一个Oracle进程独占使用的数据和控制信息。当有一个Oracle进程启动时,Oracle数据库就会创建一个PGA。对于每个服务器进程(serv