killOp
定义
killOp
根据操作ID终止操作。
mongosh
提供了db.killOp()
辅助函数。要查找操作及其相应的ID,请参阅$currentOp
或db.currentOp()
。必须对
admin
数据库运行killOp
命令。要运行killOp,请使用
db.runCommand( { <command> } )
方法。
兼容性
此命令可在以下环境中部署的实例中使用:
MongoDB Atlas:MongoDB云部署的完全托管服务
重要
此命令在M0、M2、M5和M10+集群中支持有限。有关更多信息,请参阅不支持命令。
MongoDB Enterprise:MongoDB的基于订阅的自管理版本
MongoDB Community:MongoDB的开源、免费使用和自管理版本
语法
命令具有以下形式:
db.adminCommand( { killOp: 1, op: <opid>, comment: <any> } )
命令字段
参数 | 类型 | 描述 |
---|---|---|
op | 数字 | 一个操作ID。 |
comment | 任何 | 可选。附加到此命令的用户提供的注释。一旦设置,此注释将出现在以下位置的此命令记录旁边
注释可以是任何有效的 BSON 类型(字符串、整数、对象、数组等)。 |
警告
请谨慎终止正在运行的操作。仅使用 killOp
终止由客户端发起的操作,不要 终止内部数据库操作。
行为
不要使用 killOp
终止副本集或分片集群中正在进行的索引构建。在 主节点 上使用 dropIndexes
删除索引。参见 停止正在进行的索引构建。
访问控制
在运行 authorization
的系统上,要终止用户未拥有的操作,用户必须具有包括 killop
权限动作的访问权限。
分片集群
killOp
命令可以在 mongos
上运行,可以终止跨集群分片的查询(即读取操作)。当要终止的操作是写入操作时,从 mongos
发出的 killOp
命令不会传播到分片。
有关如何在 mongos
上列出活动中的分片操作的说明,请参阅 $currentOp
中的 localOps
参数。
有关在分片集群上终止操作的更多信息示例,请参阅
示例
以下示例使用 killOp
来终止 opid 为 3478
的运行操作。
db.adminCommand( { "killOp": 1, "op": 3478 } )
操作返回以下结果
{ "info" : "attempting to kill op", "ok" : 1 }
killOp
成功标记指定操作为终止时报告成功。操作可能不会在实际到达适当的中断点之前终止。使用 $currentOp
或 db.currentOp()
来确认目标操作已被终止。