버전 5.0에서 변경됨
- db.shutdownServer()
- 현재 - mongod또는- mongos프로세스 깔끔하고 안전하게 종료합니다. 관리 데이터베이스 에 대해 작업을- db.shutdownServer()실행해야 합니다.- db.shutdownServer()에는 다음 구문이 있습니다.- db.shutdownServer({ - force: <boolean>, - timeoutSecs: <int> - }) - 이 메서드는 다음과 같은 필드를 사용합니다. 필드설명- 선택 사항. - mongod또는- mongos강제로 종료하려면- true로 지정합니다. 강제 종료는- mongod또는- mongos에서 진행 중인 모든 작업을 중단하며, 예기치 않은 동작을 초래할 수 있습니다.- force을(를) 사용하여 진행 중인 인덱스 빌드를 일시 중지했다가 다시 시작할 수 있습니다.- db.shutdownServer()자세한 내용은 복제본 세트 멤버에 대한 를 참조하세요.- 선택 사항. - MongoDB 5.0부터 - mongod및- mongos는 종료하기 전에 진행 중인 모든 데이터베이스 작업이 완료될 수 있도록 정지 기간을 입력합니다.- mongod프라이머리가 종료 요청을 받으면 프라이머리는 다음을 수행합니다.- 세컨더리로 단계를 낮추려고 시도합니다. - 강등이 실패하는 경우 
- 휴지기에 들어갑니다. 
- 남은 모든 데이터베이스 작업을 종료합니다. 
- 종료합니다. 
 - mongod세컨더리 또는- mongos종료 요청의 경우, 종료가 요청된 후 정지 기간이 입력됩니다.- 정지 기간은 다음과 같이 지정됩니다. - 또는 명령이 실행 된 - shutdown- db.shutdownServer()경우timeoutSecs 필드 또는
- shutdownTimeoutMillisForSignaledShutdown서버 매개 변수(- SIGTERM신호가- mongod로 전송된 경우) 또는
- SIGTERM신호가- mongos로 전송된 경우- mongosShutdownTimeoutMillisForSignaledShutdown서버 매개변수입니다.
 - 클라이언트는 종료되는 - mongod또는- mongos에 대해 새 연결을 열 수 없습니다.- timeoutSecs는 초 단위로 기간을 지정합니다. 기본값 과 같습니다. - MongoDB 5.0에서 15초. 
- MongoDB 5.0 이전 버전에서는 10초입니다. 
 - mongod는 다음과 같이 timeoutSecs를 사용합니다.- 현재 노드 복제본 세트 의 프라이머리 노드 인 경우 - mongod는 프라이머리 노드 물러나기 전에 투표 선택 가능 노드 따라잡을 수 있도록 timeoutSecs 필드 에 지정된 시간(초)까지 기다립니다. 따라잡기 시간에 대한 자세한 내용은 복제 지연 참조하세요.
- 프라이머리 노드에서 물러난 후 현재 노드 상태 인 경우, 기존 작업을 완료할 - SECONDARY수 있는 정지 기간으로 timeoutSecs 에 지정된 나머지 시간을 사용합니다. 새 작업은 다른 복제본 세트 노드로 전송됩니다.
 - MongoDB 부터 5.0 - mongos는 기존 작업을 완료할 수 있는 정지 기간으로 timeoutSecs를 사용합니다. 새 작업은 다른 노드로- mongos전송됩니다. 5 이전의 MongoDB 버전에서.0,- mongos는 즉시 종료되며 timeoutSecs를 사용하지 않습니다.- MongoDB 4.4 이하 버전에서 - mongod프라이머리 의 경우timeoutSecs는 세컨더리 따라잡을 때까지 프라이머리 기다려야 하는 시간(초)입니다. 지정된 시간 내에 세컨더리가 따라잡지 못하면 명령이 실패합니다. 기본값은- 10초입니다.
이 작업은 shutdown 명령 주위에 래퍼(wrapper)를 제공합니다.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
중요
이 명령은 MongoDB Atlas 클러스터에서 지원되지 않습니다. 모든 명령에 대한 Atlas 지원 에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.
- MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전 
- MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전 
행동
mongod  자체 관리 배포에 대한 인증 으로 시작된 의 경우 인증된 연결을 통해 를 db.shutdownServer() 실행 해야 합니다. 자세한 내용은 액세스 제어 를 참조하세요.
자체 관리 배포서버에서 인증 mongod 없이 시작된 의 경우 로컬 호스트 인터페이스에 연결된 클라이언트 에서 db.shutdownServer() 를 실행 해야 합니다. 예를 예시 , 와 mongosh --host "127.0.0.1" 동일한 mongod 호스팅하다 머신에서 옵션을 사용하여 를 실행 .
db.shutdownServer() 복제본 세트 멤버
mongod 복제본 세트 멤버가 인덱스 빌드와 같은 특정 작업을 실행하는 경우 db.shutdownServer()가 실패합니다. force: true를 지정하여 인덱스 빌드 진행 상황을 디스크에 저장할 수 있습니다. mongod는 인덱스 빌드가 재시작될 때 복구되며 저장된 체크포인트에서 계속됩니다.
복제본 세트 프라이머리, 세컨더리 또는 [mongos] 종료 mongos
MongoDB 5.0부터 mongod 및 mongos는 종료하기 전에 진행 중인 모든 데이터베이스 작업이 완료될 수 있도록 정지 기간을 입력합니다.
mongod 프라이머리가 종료 요청을 받으면 프라이머리는 다음을 수행합니다.
- 세컨더리로 단계를 낮추려고 시도합니다. - 강등이 실패하는 경우 
- 휴지기에 들어갑니다. 
- 남은 모든 데이터베이스 작업을 종료합니다. 
- 종료합니다. 
mongod 세컨더리 또는 mongos 종료 요청의 경우, 종료가 요청된 후 정지 기간이 입력됩니다.
정지 기간은 다음과 같이 지정됩니다.
- shutdown또는- db.shutdownServer()명령이 실행된 경우 timeoutSecs 필드, 또는
- shutdownTimeoutMillisForSignaledShutdown서버 매개 변수(- SIGTERM신호가- mongod로 전송된 경우) 또는
- SIGTERM신호가- mongos로 전송된 경우- mongosShutdownTimeoutMillisForSignaledShutdown서버 매개변수입니다.
클라이언트는 종료되는 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를 사용하지 않습니다.
경고
프라이머리 계정을 강제 종료하면 아직 세컨더리 계정으로 복제되지 않은 모든 쓰기가 롤백될 수 있습니다.
액세스 제어
db.shutdownServer() mongod 자체 관리 배포서버에 인증을 시행하는 에서 를 실행 하려면 인증된 사용자에게 권한 이 있어야 db.shutdownServer() 합니다 . 예를 예시 내장 역할 hostManager 를 가진 사용자에게는 적절한 권한이 있습니다.
예시
종료 mongod
db.getSiblingDB("admin").shutdownServer() 
[mongod] 강제 종료 mongod
db.getSiblingDB("admin").shutdownServer({ "force" : true }) 
더 긴 시간 초과로 프라이머리 mongod 종료
db.getSiblingDB("admin").shutdownServer({ "timeoutSecs": 60 })