Docs 菜单

Docs 主页开发应用程序MongoDB Manual

服务器会话

在此页面上

  • 概述
  • 命令选项
  • 会话命令
  • 会话和访问控制

MongoDB 的服务器会话或逻辑会话是客户端会话用于支持因果一致性和可重试写入的底层框架。

重要

应用程序使用客户端会话与服务器会话进行交互。

服务器会话仅适用于副本集和分片集群。

从 3.6 开始,MongoDB 驱动程序将所有操作与服务器会话关联,但未确认的写入除外。以下选项用于所有支持与服务器会话关联的命令:

重要

mongosh 而驱动程序会将这些选项分配给会话中的命令。

选项
类型
说明
lsid
文档
指定与该命令关联的会话的唯一 ID。如果指定了 txnNumber,则需要 lsid
txnNumber
64 位整型

严格递增的非负数,在该命令的会话中唯一标识该命令。

如果已指定,该命令则还须包含 lsid 选项。

对于采用语句数组的 deleteinsertupdate 命令,还提供了以下选项:

重要

请勿手动设置 stmtIds。MongoDB 将 stmtIds 设为严格递增的非负数。

选项
类型
说明
stmtIds
32 位整型数组
数组中的数字在该写命令中唯一标识各自写操作。

以下命令可用于列出、管理和终止 MongoDB 集群中的服务器会话:

命令
描述
令指定的服务器会话过期。
终止所有服务器会话。
终止符合指定模式的所有服务器会话。
终止指定服务器会话。
刷新空闲的服务器会话。
启动新的服务器会话。

如果部署强制执行身份验证/授权,用户必须通过身份验证才能启动会话,而且只有该用户才能使用该会话。

要对 $external 身份验证用户(Kerberos、LDAP 或 x.509 用户)使用客户端会话和因果一致性保证,用户名不能大于 10k 字节。

如果部署不执行身份验证/授权,则创建的会话没有所有者,任何用户可以在任何连接上使用该会话。如果用户对不强制执行身份验证/授权的部署进行身份验证并创建会话,则该用户拥有该会话。不过,任何连接上的任何用户都可以使用该会话。

如果部署在没有停机的情况下转换为身份验证,则无法使用任何没有所有者的会话。

提示

另请参阅:

← $bit