每个虚拟处理器必须连接到数据库服务器已经获取的总共享内存量。在虚拟处理器连接了每个共享内存段后,它将计算已经连接的共享内存数量以及剩余的共享内存数量。数据库服务器通过将共享内存头写入第一个共享内存段促进此进程。虚拟处理器可以深入到头的十六字节获取以下数据:
- 此数据库服务器的共享内存的总大小
- 每个共享内存段的大小
要连接附加共享内存段,虚拟处理器将从操作系统中请求这些段,很多地方就像它请求第一个段一样。然而,对于附加段,虚拟处理器对
shmkey 的先前值加 1。
虚拟处理器将引导操作系统连接位于从以下计算获得的地址的段:
SHMBASE +(seg_size x 已连接的段数)
虚拟处理器将重复此过程直到它获得总共享内存量。
假设初始的键值是 (SERVERNUM * 65536) + shmkey,那么数据库服务器在可以请求由同一台计算机上另一数据库服务器实例使用的共享内存键值前,最多请求 65,536 个共享内存段。