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

자체 관리형 샤드 클러스터 다시 시작

이 페이지의 내용

  • 밸런서 비활성화
  • 샤드 클러스터 중지
  • 샤드 클러스터 시작
  • 밸런서 다시 활성화
  • 클러스터 접근성 검증

이 튜토리얼은 MongoDB 5.0에만 해당됩니다. MongoDB의 이전 버전에 대해서는 해당 버전의 MongoDB 매뉴얼을 참조하세요.

이 절차는 샤드 클러스터를 다시 시작하기 위한 종료 및 시작 시퀀스를 보여줍니다. 샤드 클러스터의 구성 요소를 다른 순서로 중지하거나 시작하면 멤버 간에 통신 오류가 발생할 수 있습니다. 예를 들어 사용 가능한 구성 서버 가 없는 경우샤드 서버가 중단되는 것처럼 보일 수 있습니다.

중요

이 절차는 계획된 유지보수 기간에만 수행해야 합니다. 이 기간에 애플리케이션은 잠재적인 데이터 손실 또는 오래된 데이터 읽기를 방지하기 위해 클러스터에 대한 모든 읽기 및 쓰기를 중지해야 합니다.

밸런서를 비활성화하여 청크 마이그레이션을 중지하고 프로세스가 완료될 때까지 메타데이터 쓰기 작업을 수행하지 마세요. 진행 중인 마이그레이션이 있다면, 밸런서는 정지하기 전에 진행 중인 마이그레이션을 완료합니다.

밸런서를 비활성화하려면 클러스터의 mongos 인스턴스 중 하나에 연결하여 다음 명령을 실행합니다: [1]

sh.stopBalancer()

밸런서 상태를 확인하려면 sh.getBalancerState() 명령을 실행합니다.

자세한 내용은 밸런서 비활성화를 참조하세요.

[1] MongoDB 4.2부터 sh.stopBalancer() 는 샤딩된 cluster에 대한 자동 분할도 비활성화합니다.
1

mongos 라우터의 admin 데이터베이스에서 db.shutdownServer()를 실행합니다:

use admin
db.shutdownServer()
2

샤드 복제본 세트 멤버의 admin 데이터베이스에서 db.shutdownServer()를 실행하여 mongod 프로세스를 종료합니다. 각 복제본 세트의 프라이머리를 종료하기 전에 모든 세컨더리 멤버를 종료합니다.

3

구성 서버admin 데이터베이스에서 db.shutdownServer()를 실행하여 해당 mongod 프로세스를 종료합니다. 프라이머리를 종료하기 전에 모든 세컨더리 멤버를 종료합니다.

1

mongod를 시작할 때 구성 파일이나 명령줄을 사용하여 mongod 설정을 지정합니다. 시작 매개 변수에 대한 자세한 내용은 mongod 참조 페이지를 참조하세요.

구성 파일

구성 파일을 사용하는 경우 --config 옵션을 구성 파일 경로로 설정하여 mongod를 시작합니다.

mongod --config <path-to-config-file>

명령줄

명령줄 옵션을 사용하는 경우 --configsvr, --replSet, --bind_ip 및 배포에 적합한 기타 옵션으로 mongod를 시작합니다. 예를 들면 다음과 같습니다.

mongod --configsvr --replSet <replica set name> --dbpath <path> --bind_ip localhost,<hostname(s)|ip address(es)>

모든 구성 서버를 시작한 후 프라이머리 mongod에 연결하고 rs.status()를 실행하여 각 CSRS 멤버의 상태 및 가용성을 확인합니다.

2

mongod를 시작할 때 구성 파일이나 명령줄을 사용하여 mongod 설정을 지정합니다.

구성 파일

구성 파일을 사용하는 경우 --config 옵션을 구성 파일 경로로 설정하여 mongod를 시작합니다.

mongod --config <path-to-config-file>

명령줄

명령줄 옵션을 사용하는 경우 --replSet, --shardsvr, --bind_ip 옵션과 배포에 적합한 기타 옵션을 사용하여 mongod를 시작합니다. 예를 들면 다음과 같습니다.

mongod --shardsvr --replSet <replSetname> --dbpath <path> --bind_ip localhost,<hostname(s)|ip address(es)>

각 샤드의 모든 멤버를 시작한 후 각 프라이머리 mongod에 연결하고 rs.status()를 실행하여 각 멤버의 상태와 가용성을 확인합니다.

3

구성 파일 또는 명령줄 매개 변수를 사용하여 mongos 라우터를 시작하고 구성 서버를 지정합니다.

구성 파일

구성 파일을 사용하는 경우 --config 옵션과 구성 파일의 경로를 지정하여 mongos를 시작합니다.

mongos --config <path-to-config>

구성 파일에 대한 자세한 내용은 구성 옵션을 참조하세요.

명령줄

명령줄 매개변수를 사용하는 경우 mongos를 시작하고 --configdb, --bind_ip 및 기타 옵션을 배포에 맞게 적절하게 지정합니다. 예를 들면 다음과 같습니다.

경고

로컬 호스트가 아닌(예: 공개적으로 액세스할 수 있는) IP 주소에 바인딩하기 전에 클러스터를 무단 액세스로부터 보호해야 합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버를 위한 보안 체크리스트를 참조하세요. 최소한 인증을 활성화 하고 네트워크 인프라를 강화하는 것을 고려하세요.

mongos --configdb <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019 --bind_ip localhost,<hostname(s)|ip address(es)>

배포서버에 적합한 다른 옵션을 포함할 수 있습니다.

청크 마이그레이션을 재개하려면 밸런서를 다시 활성화합니다.

클러스터의 mongos 인스턴스 중 하나에 연결하고 sh.startBalancer() 명령을 실행합니다: [2]

sh.startBalancer()

밸런서 상태를 확인하려면 sh.getBalancerState() 명령을 실행합니다.

자세한 내용은 밸런서 활성화를 참조하세요.

[2] MongoDB 4.2부터 sh.startBalancer() 는 샤딩된 cluster에 대한 자동 분할도 활성화합니다.

mongo 셸을 클러스터의 mongos 프로세스 중 하나에 연결합니다. sh.status()를 사용하여 전체 클러스터 상태를 확인합니다.

모든 샤드에 액세스할 수 있고 통신할 수 있는지 확인하려면 임시 샤드 컬렉션에 테스트 데이터를 삽입합니다. 데이터가 클러스터의 각 샤드 간에 분할 및 마이그레이션되고 있는지 확인합니다. mongo 셸을 각 샤드 프라이머리에 연결하고 db.collection.find()를 사용하여 데이터가 예상대로 샤드되었는지 확인할 수 있습니다.

중요

잠재적인 데이터 손실 또는 오래된 데이터 읽기를 방지하려면 클러스터가 정상이고 액세스할 수 있는지 확인할 때까지 클러스터에 대한 애플리케이션 읽기 및 쓰기를 시작하지 마세요.

돌아가기

자체 관리형 구성 서버 교체

다음

마이그레이션