Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB 서버 종료 명령어 사용법: db.shutdownServer() 완벽 가이드

MongoDB에서 shutdownServer()가 작동하지 않는 이유

MongoDB 셸에서 db.shutdownServer() 명령어를 실행했는데 정상적으로 작동하지 않는 경우가 있습니다. 가장 흔한 원인은 admin 데이터베이스로 전환하지 않은 상태에서 명령어를 실행하기 때문입니다.

서버 종료 명령어는 admin 데이터베이스에서만 실행할 수 있도록 설계되어 있습니다. 따라서 반드시 먼저 admin 데이터베이스로 전환해야 합니다.

1단계: admin 데이터베이스로 전환

다음 명령어를 입력하여 admin 데이터베이스로 전환합니다.

use admin

정상적으로 전환되면 다음과 같은 메시지가 출력됩니다.

switched to db admin

2단계: shutdownServer() 명령어 실행

admin 데이터베이스로 전환한 후, 아래 구문으로 MongoDB 서버를 종료할 수 있습니다.

db.shutdownServer()

실제 실행 예제

위의 두 단계를 순서대로 실행하면 다음과 같습니다.

> use admin
switched to db admin
> db.shutdownServer()

명령어가 성공적으로 실행되면 서버가 종료되면서 다음과 유사한 출력 결과를 확인할 수 있습니다.

server should be down...
2019-04-22T19:11:40.949+0530 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed
2019-04-22T19:11:42.197+0530 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed

출력 결과 해석

위 로그에서 볼 수 있듯이, 서버가 종료된 후 MongoDB 셸은 기존 연결(127.0.0.1:27017)에 재접속을 시도하지만 실패하게 됩니다. 이는 정상적인 동작이며, 서버가 실제로 종료되었음을 의미합니다.

참고 사항

  • 권한 요구: 인증이 활성화된 환경에서는 shutdownServer() 명령을 실행하려면 관리자 권한(shutdown 권한)이 필요합니다.
  • 대안 방법: 셸이 아닌 시스템 레벨에서는 mongod --shutdown 옵션을 사용하거나, Linux에서는 systemctl stop mongod 명령으로도 서버를 종료할 수 있습니다.
  • 복제 세트 환경: 복제 세트의 프라이머리 노드를 종료하려는 경우, 먼저 세컨더리 노드로 강등(step down)한 후 종료하는 것이 안전합니다.