문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

db.killOp()

이 페이지의 내용

  • 설명
  • 샤딩된 클러스터
  • 액세스 제어
db.killOp(opid)

작업 ID에 지정된 대로 작업을 종료합니다. 작업과 해당 ID를 찾으려면 $currentOp 또는 db.currentOp() 을 참조하세요.

db.killOp() 메서드에는 다음과 같은 매개 변수가 있습니다.

매개 변수
유형
설명
op
숫자
작업 ID입니다.

경고

실행 중인 작업은 매우 주의해서 종료합니다. 클라이언트가 시작한 작업을 종료할 때는 db.killOp()만 사용하고 내부 데이터베이스 작업은 종료하지 마십시오.

db.killOp() 메서드는 mongos에서 실행할 수 있으며 클러스터에 있는 둘 이상의 샤드에서 실행 중인 쿼리(읽기 작업)를 종료할 수 있습니다.

예를 들어, 샤드 클러스터에서 쿼리 작업을 종료하려면 다음을 따릅니다:

  1. 클라이언트가 쿼리를 실행한 동일한 mongos에서 localOps: true으로 애그리게이션 파이프라인 $currentOp를 실행하여 종료할 쿼리 작업의 opid를 찾으십시오.

    use admin
    db.aggregate( [
    { $currentOp : { allUsers: true, localOps: true } },
    { $match : <filter condition> } // Optional. Specify the condition to find the op.
    // e.g. { op: "getmore", "command.collection": "someCollection" }
    ] )

    중요

    클라이언트가 쿼리를 실행한 동일한 mongos에서 이 애그리게이션 작업을 실행해야 합니다.

  2. 종료할 쿼리 작업을 찾으면 db.killOp() 에서 opid로 를 mongos 실행합니다.

    db.killOp(<opid of the query to kill>)

다음도 참조하세요.

$currentOplocalOps 매개 변수.

또는 작업이 실행 중인 샤드 멤버에서 읽기 작업을 찾아 종료할 수 있습니다. MongoDB는 종료 작업을 다른 샤드 및 mongos 인스턴스에 전파합니다.

  1. 작업이 실행 중인 샤드 중 하나에서 종료할 쿼리 작업의 opid를 찾습니다.

    use admin
    db.aggregate( [
    { $currentOp : { allUsers: true } },
    { $match : <filter condition> } // Optional. Specify the condition to find the op.
    // e.g. { op: "getmore", "command.collection": "someCollection" }
    ] )
  2. 종료할 쿼리 작업을 찾으면 샤드 멤버의 opid로 db.killOp() 를 실행합니다.

    db.killOp(<opid of the query to kill>)

    MongoDB는 종료 작업을 다른 샤드 및 mongos 인스턴스에 전파합니다.

세션 내에서

MongoDB 드라이버는 승인되지 않은 쓰기를 제외한 모든 작업을 서버 세션과 연결합니다.

쓰기 작업이 세션과 연결된 경우 killSessions 명령을 mongos에서 사용하여 샤드 전체에서 쓰기 작업을 종료할 수 있습니다.

  1. mongos에서 애그리게이션 파이프라인 $currentOp를 실행하여 lsid(논리적 세션 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" }
    ] )
    1. 반환된 lsid 정보를 사용하여 mongos에서 killSessions 명령을 실행하여 샤드에서 작업을 종료합니다.

      db.adminCommand( { killSessions: [
      { "id" : UUID("80e48c5a-f7fb-4541-8ac0-9e3a1ed224a4"), "uid" : BinData(0,"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=") }
      ] } )
세션 없이

쓰기 작업이 세션과 연결되어 있지 않은 경우 쓰기와 연결된 모든 샤드에서 작업을 찾아서 종료해야 합니다.

  1. mongos에서 aggregation pipeline $currentOp을(를) 실행하여 샤드에 대한 쿼리 작업의 opid를 찾습니다.

    use admin
    db.aggregate( [
    { $currentOp : { allUsers: true } },
    { $match : <filter condition> } // Optional. Specify the condition to find the op.
    ] )

    mongos에서 실행하면 $currentOp "<shardName>:<opid on that shard>" 형식으로 opid를 반환합니다(예:

    {
    "shard" : "shardB",
    ..
    "opid" : "shardB:79214",
    ...
    },
    {
    "shard" : "shardA",
    ..
    "opid" : "shardA:100913",
    ...
    },
  2. opid 정보를 사용하여 mongos에서 db.killOp()를 실행하여 샤드에서 작업을 종료합니다.

    db.killOp("shardB:79014");
    db.killOp("shardA:100813");

authorization 으로 실행되는 시스템에서 사용자가 소유하지 않은 조치를 종료하려면 사용자에게 killop 권한 조치가 포함된 액세스 권한이 있어야 합니다.

mongod 인스턴스에서는 사용자가 killop 권한 조치 없이도 자신의 작업을 종료할 수 있습니다.

다음도 참조하세요.

돌아가기

db.hostInfo