Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

종료됩니다

이 페이지의 내용

  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 액세스 제어
  • 예시

버전 5.0에서 변경됨

shutdown

shutdown 명령은 모든 데이터베이스 리소스를 정리한 다음 프로세스를 종료합니다. 관리 데이터베이스에 대해 shutdown 명령을 실행해야 합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

중요

이 명령은 M0, M2, M5 및 M10클러스터 이상에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.

명령은 다음과 같은 구문을 가집니다:

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

이 명령은 이러한 필드를 사용합니다.

필드
설명

1를 지정합니다.

선택 사항. mongod 또는 mongos 강제로 종료하려면 true로 지정합니다. 강제 종료는 mongod 또는 mongos에서 진행 중인 모든 작업을 중단하며, 예기치 않은 동작을 초래할 수 있습니다.

force를 사용하여 진행 중인 인덱스 빌드를 일시 중지했다가 다시 시작할 수 있습니다. 자세한 내용은 복제본 세트 멤버의 shutdown을 참조하세요.

선택 사항.

MongoDB 5.0부터 mongodmongos는 종료하기 전에 진행 중인 모든 데이터베이스 작업이 완료될 수 있도록 정지 기간을 입력합니다.

mongod 프라이머리가 종료 요청을 받으면 프라이머리는 다음을 수행합니다.

  1. 세컨더리로 단계를 낮추려고 시도합니다.

    강등이 실패하는 경우

  2. 휴지기에 들어갑니다.

  3. 남은 모든 데이터베이스 작업을 종료합니다.

  4. 종료합니다.

mongod 세컨더리 또는 mongos 종료 요청의 경우, 종료가 요청된 후 정지 기간이 입력됩니다.

정지 기간은 다음과 같이 지정됩니다.

클라이언트는 종료되는 mongod 또는 mongos에 대해 새 연결을 열 수 없습니다.

timeoutSecs는 초 단위로 기간을 지정합니다. 기본값은 다음과 같습니다.

  • MongoDB 5.0에서 15초.

  • MongoDB 5.0 이전 버전에서는 10초입니다.

mongod는 다음과 같이 timeoutSecs을 사용합니다.

  • 현재 노드가 복제본 세트의 프라이머리 노드인 경우 mongod는 프라이머리 노드가 물러나기 전에 투표 선택 가능 노드가 따라잡을 수 있도록 timeoutSecs 필드에 지정된 시간(초)까지 대기합니다. 따라잡기 시간에 대한 자세한 내용은 복제 지연을 참조하세요.

  • 프라이머리에서 물러난 후 현재 노드가 SECONDARY 상태인 경우, 기존 작업을 완료할 수 있는 정지 기간으로 timeoutSecs에 지정된 남은 시간이 사용됩니다. 새 작업은 다른 복제본 세트 노드로 전송됩니다.

MongoDB 5.0부터 mongos는 기존 작업을 완료할 수 있는 정지 기간으로 timeoutSecs를 사용합니다. 새 작업은 다른 mongos 노드로 전송됩니다. MongoDB 5.0 이전 버전에서는 mongos가 즉시 종료되며 timeoutSecs를 사용하지 않습니다.

MongoDB 4.4 이하 버전에서 mongod 프라이머리 의 경우 timeoutSecs 는 세컨더리 가 따라잡을 때까지 프라이머리 가 기다려야 하는 시간(초)입니다. 지정된 시간 내에 세컨더리가 따라잡지 못하면 명령이 실패합니다. 기본값은 10 초입니다.

comment

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

다음도 참조하세요.

mongod 자체 관리 배포에 대한 인증 으로 시작된 의 경우 인증된 연결을 통해 를 shutdown 실행 해야 합니다. 자세한 내용은 액세스 제어 를 참조하세요.

자체 관리 배포서버에서 인증 mongod 없이 시작된 의 경우 로컬 호스트 인터페이스에 연결된 클라이언트 에서 shutdown 를 실행 해야 합니다. 예를 예시 , 와 mongosh --host "127.0.0.1" 동일한 mongod 호스팅하다 머신에서 옵션을 사용하여 를 실행 .

복제본 세트 멤버가 인덱스 빌드와 같은 특정 작업을 실행하는 경우 shutdown에 실패합니다. force: true를 지정하여 멤버가 인덱스 빌드 진행 상황을 디스크에 강제로 저장하도록 할 수 있습니다. mongod는 인덱스 빌드가 재시작될 때 복구되며 저장된 체크포인트에서 계속됩니다.

MongoDB 5.0부터 mongodmongos는 종료하기 전에 진행 중인 모든 데이터베이스 작업이 완료될 수 있도록 정지 기간을 입력합니다.

mongod 프라이머리가 종료 요청을 받으면 프라이머리는 다음을 수행합니다.

  1. 세컨더리로 단계를 낮추려고 시도합니다.

    강등이 실패하는 경우

  2. 휴지기에 들어갑니다.

  3. 남은 모든 데이터베이스 작업을 종료합니다.

  4. 종료합니다.

mongod 세컨더리 또는 mongos 종료 요청의 경우, 종료가 요청된 후 정지 기간이 입력됩니다.

정지 기간은 다음과 같이 지정됩니다.

클라이언트는 종료되는 mongod 또는 mongos에 대해 새 연결을 열 수 없습니다.

timeoutSecs는 초 단위로 기간을 지정합니다. 기본값은 다음과 같습니다.

  • MongoDB 5.0에서 15초.

  • MongoDB 5.0 이전 버전에서는 10초입니다.

mongod는 다음과 같이 timeoutSecs을 사용합니다.

  • 현재 노드가 복제본 세트의 프라이머리 노드인 경우 mongod는 프라이머리 노드가 물러나기 전에 투표 선택 가능 노드가 따라잡을 수 있도록 timeoutSecs 필드에 지정된 시간(초)까지 대기합니다. 따라잡기 시간에 대한 자세한 내용은 복제 지연을 참조하세요.

  • 프라이머리에서 물러난 후 현재 노드가 SECONDARY 상태인 경우, 기존 작업을 완료할 수 있는 정지 기간으로 timeoutSecs에 지정된 남은 시간이 사용됩니다. 새 작업은 다른 복제본 세트 노드로 전송됩니다.

MongoDB 5.0부터 mongos는 기존 작업을 완료할 수 있는 정지 기간으로 timeoutSecs를 사용합니다. 새 작업은 다른 mongos 노드로 전송됩니다. MongoDB 5.0 이전 버전에서는 mongos가 즉시 종료되며 timeoutSecs를 사용하지 않습니다.

경고

프라이머리 계정을 강제 종료하면 아직 세컨더리 계정으로 복제되지 않은 모든 쓰기가 롤백될 수 있습니다.

자체 관리 배포에서 인증을 적용하는 mongodshutdown을 실행하려면 인증된 사용자가 shutdown 권한을 가지고 있어야 합니다. 예를 들어 내장된 역할인 hostManagerr를 가진 사용자는 적절한 권한을 가지고 있습니다.

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

돌아가기

setUserWriteBlockMode