killOp
Novo na versão 3.2.
Definição
killOp
Termina uma operação conforme especificado pelo ID da operação.
mongosh
fornece o assistentedb.killOp()
. Para encontrar operações e seus ID correspondentes, consulte$currentOp
oudb.currentOp()
.O comando
killOp
deve ser executado no reconhecimento de data centeradmin
.Para executar o killOp, use o método
db.runCommand( { <command> } )
.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando tem suporte limitado em M0, M2, M5 e M10+ clusters. Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem o seguinte formato:
{ "killOp": 1, "op": <opid>, comment: <any> }
Campos de comando
Parâmetro | Tipo | Descrição |
---|---|---|
op | número | Um ID de operação. |
comment | any | Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc). |
Aviso
Encerre as operações em execução com extrema cautela. Use apenas killOp
para encerrar operações iniciadas por clientes e não encerre operações internas de banco de dados.
Comportamento
Não use killOp
para encerrar compilações de índice em andamento em conjuntos de réplicas ou clusters fragmentados. Use dropIndexes
no primário para eliminar o índice. Consulte Cancelar compilações de índice em andamento.
Controle de acesso
Em sistemas executados com authorization
, para eliminar operações que não pertencem ao usuário, o usuário deve ter acesso que inclua a ação de privilégio killop
.
Em instâncias do mongod
, os usuários podem matar suas próprias operações mesmo sem a ação de privilégio do killop
.
Cluster fragmentado
O comando killOp
pode ser executado em um mongos
e pode eliminar queries (ou seja, operações de leitura) que abrangem fragmentos em um cluster. O comando killOp
do mongos
não se propaga para os shards quando a operação a ser eliminada é uma operação de gravação.
Para obter informações sobre como listar as operações de fragmentação que estão ativas em um mongos
, consulte o parâmetro localOps
em $currentOp
.
Para obter mais informações e exemplos sobre como eliminar operações em um cluster fragmentado, consulte:
Exemplo
O exemplo a seguir usa killOp
para direcionar a operação em execução com opid 3478
.
db.adminCommand( { "killOp": 1, "op": 3478 } )
A operação retorna o seguinte resultado:
{ "info" : "attempting to kill op", "ok" : 1 }
killOp
relata o sucesso se tiver êxito em marcar a operação especificada para encerramento. As operações não podem ser encerradas até que atinjam um ponto de interrupção apropriado . Use $currentOp
ou db.currentOp()
para confirmar que a operação de destino foi encerrada.