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