共享内存分配

数据库服务器将创建共享内存的以下部分:

数据库服务器根据需要将操作系统段添加到共享内存的虚拟部分和虚拟扩展部分。

有关平台的共享内存设置的更多信息,请参阅机器说明。下图显示了共享内存各部分的内容。

所有的数据库服务器虚拟处理器都可以访问相同的共享内存段。每个虚拟处理器通过保留其自身对共享内存资源(如缓冲区、锁定和锁存器)的指针集来管理其工作。在将数据库服务器从脱机方式转换到静默、管理或联机方式时,虚拟处理器将连接共享内存。数据库服务器将使用锁定和锁存器来管理多个线程对共享内存资源的并发访问。

图: 数据库服务器共享内存的内容


此图显示共享内存各部分的内容。内容包括共享内存头、缓冲区头表、LRU 队列、锁定表、物理日志缓冲区、逻辑日志缓冲区和共享内存常驻部分中的缓冲池。共享内存的虚拟部分包含块表、镜像块表、数据库空间表、页清除程序表、表空间表、事务表、用户表、会话结构、线程结构、字典高速缓存、UDR 高速缓存、SQL 语句高速缓存、排序池、线程堆栈、线程堆、大缓冲区、全局池和未分配内存。UNIX 机器上共享内存的 IPC 通信部分包含客户机/服务器 IPC 消息。共享内存的虚拟扩展部分包含 DataBlade 模块和用户定义的例程的线程堆。