복제본 세트의 이름을 바꾸려면 복제본 세트의 모든 멤버를 종료한 다음 각 멤버의 local 데이터베이스를 새 복제본 세트 이름으로 구성해야 합니다.
이 절차를 수행하려면 다운타임이 필요합니다.
전제 조건
복제본 세트가 샤딩되지 않았는지 확인합니다. 이름 변경 절차는 샤딩되지 않은 복제본 세트에만 적용됩니다.
복제본 세트 의 이름을 변경하기 전에 MongoDB 배포서버의 전체 MongoDB deployment 백업 수행합니다.
인증이 활성화된 경우, 사용자 역할에 각 구성원의
local데이터베이스에 있는system.replsetcollection에 대한find,insert및remove권한이 있는지 확인해야 합니다.팁
showPrivileges및showBuiltinRoles필드를 모두true로 설정한 상태에서rolesInfo명령을 실행하여 역할에 대한 권한을 볼 수 있습니다.
절차
복제본 세트의 이름을 변경합니다.
각 복제본 세트 멤버에 대해 다음 단계를 수행합니다.
--replSet옵션 없이 다른 포트에서 복제본 세트 멤버를 시작하세요.복제본 세트 이름을 업데이트합니다.
구성 파일을 사용하는 경우,
replication.replSetName을 새 이름으로 설정합니다.--replSet옵션과 함께mongod스타트업 명령을 사용하는 경우, 사용하는 경우 f 단계에서 사용할 새 복제본 세트 이름을 기록해 두세요.
복제본 세트 멤버에 연결합니다.
다음 명령을 사용하여 로컬 데이터베이스에서 복제본 세트 이름을 업데이트해야 합니다.
/* Set `newId` to the new replica set name */ var newId = '<new replica set name>' var doc = db.getSiblingDB("local").system.replset.findOne() var oldId = doc._id doc._id = newId db.getSiblingDB("local").system.replset.insertOne(doc) db.getSiblingDB("local").system.replset.deleteOne({_id: oldId}) 복제본 세트 멤버를 종료합니다.
참고
Ops Manager
MongoDB Ops Manager를 사용하는 경우 복제본 세트 멤버를 종료하기 전에 MongoDB Ops Manager가 복제본 세트를 관리하지 못하도록 중지해야 합니다. 이 절차에 대한 자세한 내용 은 운영 관리에서 프로세스 제거를 참조하세요.
기존 포트에서 복제본 세트 멤버를 시작합니다.
구성 파일을 사용하는 경우
replication.replSetName가 새 복제본 세트 이름으로 설정되어 있는지 확인합니다.mongod스타트업 명령을--replSet옵션과 함께 사용하는 경우 복제본 세트의 새 이름을--replSet옵션에 전달하세요.