2017-09-18 2 views
0

복제본 세트 (마스터와 노예)가 있다고 가정 해 봅시다! 새 mongodb 노드가 누가 마스터인지, 그리고 마스터에 연결하지 않고 ReplicaSet에 자체 등록 될 수 있다는 사실을 자동화하려고합니다.MongoDB Replica Set에 회원 추가 (회원 측에서)

(기본 노드의) rs.add() 쉘 명령을 실행하지 않고 MongoDB Replica Set에 새 구성원을 추가 할 수 있습니까?

회원이 일부 특수 매개 변수를 사용하여 복제 세트에 자신을 등록 할 수 있습니까? 어쩌면 어떤 종류의 인증!

답변

1

(기본 노드의) rs.add() 쉘 명령을 실행하지 않고 MongoDB Replica Set에 새 구성원을 추가 할 수 있습니까?

그것은 당신이 secondary member에서 force 옵션을 rs.reconfig()을 실행할 수있다. rs.reconfig(){ force: true }과 함께 사용하면 커밋 된 쓰기가 rollback이 될 수 있습니다. 또한 네트워크 파티션으로 인해 대부분의 복제 세트 구성원을 볼 수없는 구성원에 연결하는 경우를 생각해보십시오.

복제본 집합 구성원에 연결하고 rs.status()을 통해 주 구성원을 결정하고 복제본 주 집합을 통해 rs.add()을 실행하는 것이 더 안전한 방법입니다.

database command isMaster()

그것은 회원이 특별한 매개 변수를 사용하여 복제 세트에 자신을 등록 할 수 있나요보기?

MongoDB v3.4.x부터는 현재 불가능합니다. 여러 가지 이유로 회원 간 일관성을 위해 Replica Set Configuration을 변경할 수있는 기본 회원 만 확보하는 것이 중요합니다.