자체 관리 복제본 세트 이름 바꾸기
복제본 세트의 이름을 바꾸려면 복제본 세트의 모든 멤버를 종료한 다음 각 멤버의 local
데이터베이스를 새 복제본 세트 이름으로 구성해야 합니다.
이 절차를 수행하려면 다운타임이 필요합니다.
전제 조건
복제본 세트가 샤딩되지 않았는지 확인합니다. 이름 변경 절차는 샤딩되지 않은 복제본 세트에만 적용됩니다.
복제본 세트 의 이름을 변경하기 전에 MongoDB 배포서버의 전체 MongoDB deployment 백업 수행합니다.
인증이 활성화된 경우, 사용자 역할에 각 구성원의
local
데이터베이스에 있는system.replset
collection에 대한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
옵션에 전달하세요.