Docs 菜单

Docs 主页开发应用程序MongoDB Manual

shutdown

在此页面上

  • 语法
  • 命令字段
  • 行为
  • 访问控制
  • 举例

5.0 版本中的更改

shutdown

shutdown命令会清理所有数据库资源,然后终止进程。您必须对shutdown 管理员数据库 发出 命令。

该命令具有以下语法:

db.adminCommand(
{
shutdown: 1,
force: <boolean>
timeoutSecs: <int>,
comment: <any>
}
)

该命令使用以下字段:

字段
说明
shutdown

指定 1

可选。指定 true 以强制关闭 mongodmongos。强制关闭会中断 mongodmongos 上正在进行的任何操作,并可能导致意外行为。

可选。

从 MongoDB 5.0 开始,mongodmongos 进入静默期,以允许所有正在进行的数据库操作在关闭之前完成。

如果一个 mongod 主节点收到关闭请求,则主节点:

  1. 尝试降级到从节点。

    如果降级失败,并且:

  2. 进入静默期。

  3. 结束所有剩余的数据库操作。

  4. 关闭。

对于 mongod 从节点mongos 关闭请求,在请求关闭之后进入静默期。

静止期由以下各项指定:

mongodmongos 关闭时,客户端无法新建相关连接。

timeoutSecs指定一个时间段(以秒为单位)。默认为:

  • 从 MongoDB 5.0 开始为 15 秒。

  • 在 MongoDB 5.0 以前的版本中为 10 秒。

mongod使用timeoutSecs ,如下所示:

  • 如果当前节点是副本集的节点,则mongod会等待timeoutSecs字段指定的秒数,让可选举节点赶上主节点,然后再降级主节点。有关追赶时间的详细信息,请参阅复制延迟。

  • 如果当前节点在降级主节点身份后处于SECONDARY状态,则timeoutSecs中指定的任何剩余时间都将用于静默期,以便完成现有操作。新操作将发送到其他副本集节点。

从 MongoDB 5开始。 0 、 mongos使用timeoutSecs作为静默期,以允许完成现有操作。新操作将发送到其他mongos节点。在5之前的 MongoDB 版本中。 0 、 mongos会立即关闭且不使用timeoutSecs

comment

可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:

注释可以是任何有效的 BSON 类型(字符串、整型、对象、数组等)。

提示

另请参阅:

对于mongod 使用 Authentication 启动的 ,您必须通过经过身份验证的连接运行shutdown 。有关详细信息,请参阅 访问控制

对于在mongod 没有 Authentication 的情况下启动的 ,您必须从连接到本地主机接口的客户端运行shutdown 。例如,在与 相同的主机上运行带有 选项的mongosh --host "127.0.0.1"{mongod

shutdown如果副本集节点正在运行某些操作(例如 索引构建 ),则 会失败。您可以指定 force: true 来强制节点中断这些操作并关闭。

从 MongoDB 5.0 开始,mongodmongos 进入静默期,以允许所有正在进行的数据库操作在关闭之前完成。

如果一个 mongod 主节点收到关闭请求,则主节点:

  1. 尝试降级到从节点。

    如果降级失败,并且:

  2. 进入静默期。

  3. 结束所有剩余的数据库操作。

  4. 关闭。

对于 mongod 从节点mongos 关闭请求,在请求关闭之后进入静默期。

静止期由以下各项指定:

mongodmongos 关闭时,客户端无法新建相关连接。

timeoutSecs指定一个时间段(以秒为单位)。默认为:

  • 从 MongoDB 5.0 开始为 15 秒。

  • 在 MongoDB 5.0 以前的版本中为 10 秒。

mongod使用timeoutSecs ,如下所示:

  • 如果当前节点是副本集的节点,则mongod会等待timeoutSecs字段指定的秒数,让可选举节点赶上主节点,然后再降级主节点。有关追赶时间的详细信息,请参阅复制延迟。

  • 如果当前节点在降级主节点身份后处于SECONDARY状态,则timeoutSecs中指定的任何剩余时间都将用于静默期,以便完成现有操作。新操作将发送到其他副本集节点。

从 MongoDB 5开始。 0 、 mongos使用timeoutSecs作为静默期,以允许完成现有操作。新操作将发送到其他mongos节点。在5之前的 MongoDB 版本中。 0 、 mongos会立即关闭且不使用timeoutSecs

警告

强制关闭主节点可能会导致所有尚未复制到从节点的写入操作发生回滚

要在实施shutdown mongod身份验证 的 上运行 ,经过身份验证的用户 必须 具有shutdown 特权。例如,具有内置角色hostManager 的用户就拥有适当的权限。

db.adminCommand({ "shutdown" : 1 })
db.adminCommand({ "shutdown" : 1, "force" : true })
db.adminCommand({ "shutdown" : 1, timeoutSecs: 60 })
← setUserWriteBlockMode