共享内存连接 (UNIX™)

共享内存连接使用共享内存的一块区域作为客户机和数据库服务器相互通信所通过的通道。客户机不能与数据库服务器建立多个共享内存连接。

下图说明了共享内存连接。

图: 通过共享内存连接进行的客户机应用程序和数据库服务器通信。


在此图中,客户机应用程序和数据库服务器通过共享内存连接进行通信。

共享内存提供对数据库服务器的快速访问,但是它会引起一些安全性方面的风险。错误或恶意的应用程序可能删除或查看其自己的或其他本地用户的消息缓冲区。 如果客户机应用程序执行显式内存寻址或过度索引数据数组,那么共享内存通信也容易受到编程错误的影响。如果使用的是网络通信或流管道,那么这些错误不会影响数据库服务器。

共享内存连接的示例

下图显示名为 river 的计算机上的共享内存连接。

图: 客户机应用程序与名为 river_shm 的数据库服务器之间的共享内存连接。


在该图中,客户机应用程序和数据库服务器 river_shm 通过共享内存彼此通信。
此安装的 onconfig 文件包含以下行:
DBSERVERNAME river_shm
此安装的 sqlhosts 文件包含以下行:
#dbservername    nettype       hostname      servicename      options
 river_shm      onipcshm  river      rivershm
客户机应用程序将连接到使用以下语句的此数据库服务器:
CONNECT TO '@river_shm'

对于共享内存连接,无需网络配置文件中的任何条目。对 sqlhosts 文件的 hostnameservicename 字段使用任意值。