
4개의 서로 다른 복제본 세트가 있는 mongoDB 클러스터가 있습니다. 최근에 두 대의 컴퓨터가 복구할 수 없는 방식으로 충돌하여 이에 대한 데이터가 완전히 사라졌습니다. 안타깝게도 해당 2개의 호스트에 1개의 복제본 세트가 설치되었습니다.
제가 겪고 있는 문제는 구성이 여전히 일부 데이터가 이 복제본 세트 호스트에 있다고 표시하고 클라이언트 애플리케이션이 해당 시스템에 청크가 있는 컬렉션에서 읽으려고 시도할 때 다음 오류를 반환한다는 것입니다.
ReplicaSetShardServer4 세트에 대해 읽기 기본 설정 { 모드: "기본" }과 일치하는 호스트를 찾을 수 없습니다.
그 2개의 서버가 사라졌기 때문에 말이 됩니다.
그래서 구성에서 해당 서버를 제거하는 방법을 찾고 싶었지만 복제본 세트의 기본 노드에 연결하고 그 이후로 다시 수행할 수 없는 샤드를 제거하기 위해 언급하고 있는 모든 절차에서 해당 호스트가 사라졌습니다.
답변1
구성 파일 및 주석 줄 변경
replication:
replSetName: ...
몽고 서비스를 다시 시작하세요. 노드에 연결하고 local
데이터베이스를 삭제합니다.
db.getSiblingDB('local').dropDatabase()
이를 통해 ReplicaSet를 독립 실행형 MongoDB로 되돌립니다. 그런 다음 ReplicaSet를 다시 구성합니다. 다음을 참조하세요.독립 실행형 mongod를 복제 세트로 변환
도 살펴보세요MongoDB 백업에서 복제본 세트 복원, 절차는 귀하의 경우에 필요한 것과 동일합니다. 첫 번째 단계인 "백업 MongoDB 데이터베이스 파일 얻기"를 제외하면 물론 이 단계는 필요하지 않습니다.