HOWTO · MongoDB
MongoDB 종료/중지
이 기사에서는 MongoDB를 종료하는 다양한 방법을 설명합니다.
이 페이지의 내용
MongoDB를 종료하는 적절한 방법은 서버를 관리하는 방식에 따라 달라집니다. 서버에 연결할 수 있으면 데이터베이스 셸을, 서비스로 관리되는 배포 환경에서는 운영 체제의 서비스 제어 기능을, 포그라운드 mongod에서는 해당 프로세스를 제어하는 터미널을 사용하세요. 프로세스 신호는 잘못된 프로세스를 중지하거나 정상적인 종료를 방해할 수 있으므로 최후의 수단으로만 사용하세요. 이 인스턴스를 시작한 방식에 맞는 방법을 선택하세요.
배포 환경에 맞는 종료 방법 선택하기
먼저 대상 서버가 어떤 방식으로 실행되는지 확인하세요. 관리자나 배포 도구가 서버를 서비스로 관리한다면 같은 서비스 관리자를 사용하세요. 터미널에서 mongod를 시작했다면 그 터미널에서 중지하세요. 권한이 있는 데이터베이스 셸 연결을 사용할 수 있다면 아래에 설명된 데이터베이스 셸 종료 방법을 이용하세요. 여러 방법을 무분별하게 섞지 마세요. 예를 들어 서비스로 관리되는 프로세스를 직접 중지하면 서비스 관리자가 파악하는 상태와 실제 상태가 달라질 수 있습니다.
작업을 시작하기 전에 올바른 MongoDB 인스턴스를 확인하고 해당 배포 환경에서 요구하는 접근 권한이 있는지 확인하세요. 이 문서에서는 특정 셸 실행 명령, 서비스 이름, 운영 체제 명령이나 접근 요건을 확정하지 않습니다. 이러한 사항은 환경마다 다르므로 해당 환경의 설정을 확인해야 합니다.
데이터베이스 셸에서 MongoDB 종료하기
데이터베이스 셸에서 db.shutdownServer()를 사용해 종료를 요청하세요. 사용하기 전에 배포 환경에 맞는 셸 실행 및 연결 절차를 확인하고, 의도한 서버에 연결되어 있으며 필요한 권한이 있는지 검증하세요. 또한 해당 MongoDB 버전의 구문에서 이 방법을 지원하는지 확인하세요.
운영 체제의 서비스 관리자 대신 데이터베이스 인터페이스를 통해 서버를 중지해야 할 때 셸을 통한 요청이 유용합니다. 요청이 대상 서버에 도달하지 않거나 권한이 거부되더라도 곧바로 광범위한 프로세스 종료 명령으로 바꾸지 마세요. 배포 환경의 연결 및 접근 설정을 확인하거나 해당 인스턴스를 관리하는 제어 경로를 사용하세요.
운영 체제에서 MongoDB 서비스 중지하기
서비스로 관리되는 배포 환경에서는 해당 호스트에 설정된 서비스 식별 정보를 사용해 운영 체제의 서비스 제어 기능으로 중지하세요. 정확한 명령과 서비스 이름은 시스템과 설치 방식에 따라 다르며, 여기서는 현재 유효하거나 모든 환경에 적용되는 단일 명령을 제시하지 않습니다. 호스트의 서비스 설정을 확인하거나 관리자에게 문의한 뒤, 해당 관리자를 통해 중지 요청을 보내세요.
이 방법은 종료 요청을 MongoDB를 시작하고 감독하는 서비스에 맞춥니다. 서비스 명령이 익숙하지 않다는 이유로 프로세스 이름을 이용한 종료 명령으로 대체하지 마세요. 관리자가 오류를 보고하면 다른 제어 경로를 시도하기 전에 올바른 서비스를 선택했는지, 필요한 권한이 있는지 확인하세요.
포그라운드 mongod 프로세스 중지하기
직접 제어할 수 있는 터미널에 mongod가 연결되어 있다면 같은 터미널에서 중지하세요. 제어 터미널이 해당 키 조합을 이 포그라운드 프로세스에 대한 인터럽트로 전달하는 경우에만 Ctrl+C를 사용할 수 있습니다. 키 조합의 동작은 터미널과 mongod를 시작한 방식에 따라 달라집니다. 포그라운드 환경에서 제공하는 제어 방법을 사용하고, 종료 요청 대신 터미널을 닫지 말고 프로세스가 끝날 때까지 기다리세요.
이 방법은 포그라운드 프로세스에 적용되며 서비스나 다른 세션에서 실행 중인 프로세스에 자동으로 적용되지는 않습니다. 터미널을 사용할 수 없다면 다른 방법을 선택하기 전에 실제 배포 환경의 관리자를 확인하세요.
정상적인 제어 방법을 사용할 수 없을 때만 프로세스 신호 사용하기
일반적인 데이터베이스 셸, 서비스 관리자 또는 프로세스를 제어하는 터미널을 사용할 수 없고 정확한 mongod 프로세스를 식별할 수 있을 때만 프로세스 신호를 사용하세요. 잘못된 PID로 보낸 신호는 관련 없는 프로그램을 종료할 수 있으며, 이름을 기준으로 범위를 넓게 지정하는 명령은 둘 이상의 MongoDB 인스턴스에 영향을 줄 수 있습니다. 이름이 일치하는 프로세스를 모두 대상으로 삼지 말고, 모든 배포 환경에서 신호에 따른 종료 동작이 같다고 가정하지 마세요.
대상 프로세스를 확실히 식별할 수 없거나 신호의 영향을 판단할 수 없다면 작업을 멈추고 시스템 관리자에게 설정된 제어 경로를 사용해 달라고 요청하세요. 정상 종료 요청에 시간이 걸린다는 이유만으로 강제 종료로 넘어가지 마세요. 먼저 배포 환경 자체의 제어 기능으로 상태를 확인하세요.
종료 여부 확인 및 일반적인 문제 해결하기
인스턴스를 관리하는 인터페이스에서 결과를 확인하세요. 서비스라면 서비스 관리자에서, 포그라운드 프로세스라면 해당 터미널에서, 그 밖의 경우에는 배포 환경에서 정한 상태 또는 상태 점검 화면에서 확인하면 됩니다. 표시된 상태가 의도한 서버에 해당하는지도 확인하세요. 종료 요청을 보냈다는 사실만으로 올바른 인스턴스가 중지되었다고 볼 수는 없습니다.
서버가 여전히 실행 중인 것으로 보이면 올바른 인스턴스를 선택했는지, 사용한 제어 경로에 필요한 권한이 있는지 확인하세요. 일반적인 제어 방법을 사용할 수 없다면 앞서 설명한 대체 방법을 해당 조건이 충족될 때만 사용하세요. 갑작스럽거나 잘못된 종료는 문제를 일으킬 수 있으므로 배포 환경의 정상 종료 제어 기능을 우선하고, 확실히 식별하지 못한 프로세스는 종료하지 마세요.