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

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

이 페이지의 내용

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

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

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

중요

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

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

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

sh.stopBalancer()

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

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

[1] MongoDB 6.0.3부터 자동 청크 분할이 수행되지 않습니다. 이는 밸런싱 정책이 개선되었기 때문입니다. 자동 분할 명령이 여전히 존재하지만 작업을 수행하지 않습니다. 자세한 내용은 밸런싱 정책 변경을 참조하세요. MongoDB 6.0.3 이전 버전에서 sh.stopBalancer()는 샤딩된 클러스터에 대한 자동 분할도 비활성화합니다.
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 6.0.3부터 자동 청크 분할이 수행되지 않습니다. 이는 밸런싱 정책이 개선되었기 때문입니다. 자동 분할 명령이 여전히 존재하지만 작업을 수행하지 않습니다. 자세한 내용은 밸런싱 정책 변경을 참조하세요. MongoDB 6.0.3 이전 버전에서 sh.startBalancer()는 샤딩된 클러스터에 대한 자동 분할도 활성화합니다.

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

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

중요

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

돌아가기

자체 관리형 Config 서버 교체