db.killOp()
On this page
Description
db.killOp(opid)-
Terminates an operation as specified by the operation ID. To find operations and their corresponding IDs, see
$currentOpordb.currentOp().The
db.killOp()method has the following parameter:Parameter Type Description opnumber An operation ID. Warning
Terminate running operations with extreme caution. Only use
db.killOp()to terminate operations initiated by clients and do not terminate internal database operations.
Sharded Cluster
Kill Read Operations
The db.killOp() method can be run on a mongos and can kill queries (read operations) that are running on more than one shard in a cluster.
For example, to kill a query operation on a sharded cluster:
Kill Write Operations
- Within a Session
-
MongoDB drivers associate all operations with a server session, with the exception of unacknowledged writes.
If the write operation is associated with a session, you can use the
killSessionscommand on themongosto kill the write operation across shards.-
Run the aggregation pipeline
$currentOpon themongosto find thelsid(logical session id).use admin db.aggregate( [ { $currentOp : { allUsers: true, localOps: true } }, { $match : <filter condition> } // Optional. Specify the condition to find the op. // e.g. { "op" : "update", "ns": "mydb.someCollection" } ] )
-
Using the returned
lsidinformation, issue thekillSessionscommand on themongosto kill the operation on the shards.db.adminCommand( { killSessions: [ { "id" : UUID("80e48c5a-f7fb-4541-8ac0-9e3a1ed224a4"), "uid" : BinData(0,"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=") } ] } )
-
-
- Without a Session
-
If the write operation is not associated with a session, you must find and kill the operation on all the shards associated with the write.
-
From a
mongos, run the aggregation pipeline$currentOpto find the opid(s) of the query operation on the shards:use admin db.aggregate( [ { $currentOp : { allUsers: true } }, { $match : <filter condition> } // Optional. Specify the condition to find the op. ] )
When run on a
mongos,$currentOpreturns the opids in the format of"<shardName>:<opid on that shard>"; e.g.{ "shard" : "shardB", .. "opid" : "shardB:79214", ... }, { "shard" : "shardA", .. "opid" : "shardA:100913", ... }, -
Using the opid information, issue
db.killOp()on themongosto kill the operation on the shards.db.killOp("shardB:79014"); db.killOp("shardA:100813");
-
Access Control
On systems running with authorization, to kill operations not owned by the user, the user must have access that includes the killop privilege action.
On mongod instances, users can kill their own operations even without the killop privilege action.