자체 관리형 세컨더리를 중재자로 전환
더 이상 데이터를 보유할 필요가 없지만 설정하다 가 프라이머리 를 선택할 수 있도록 설정하다 에 남아 있어야 하는 복제본 세트 에 세컨더리 가 있는 경우, 이 절차를 사용하여 세컨더리 를 중재자 로 변환할 수 있습니다. 튜토리얼. 두 절차는 운영상 동일합니다.
이전 세컨더리와 동일한 포트에서 중재자를 작동할 수 있습니다. 이 절차에서는 반드시 세컨더리를 종료하고 해당 데이터를 제거한 후 다시 시작하여 중재자로 재구성해야 합니다.
이 절차에 대해서는 세컨더리를 중재자로 변환하고 포트 번호 재사용을 참조하세요.
새 포트에서 중재자를 실행합니다. 이 절차에서는 세컨더리로 실행 중인 인스턴스를 종료하기 전에 서버를 중재자로 재구성할 수 있습니다.
이 절차는 세컨더리 포트를 새 포트 번호에서 실행되는 중재자로 변환을 참조하세요.
세컨더리를 중재자로 변환하고 포트 번호 재사용
애플리케이션이 세컨더리에 직접 연결된 경우 MongoDB 쿼리가 세컨더리에 도달하지 않도록 애플리케이션을 수정합니다.
세컨더리를 종료합니다.
메서드를 호출하여 복제본 세트 에서 세컨더리 를 제거합니다.
rs.remove()
의 현재 프라이머리 에 연결된 상태에서mongosh
이 작업을 수행합니다.rs.remove("<hostname><:port>") mongosh
에서rs.conf()
메서드를 호출하여 복제본 세트에 더 이상 세컨더리가 포함되지 않는지 확인합니다.rs.conf() 세컨더리 데이터 디렉터리를 아카이브 폴더로 옮깁니다. 예를 들면 다음과 같습니다.
mv /data/db /data/db-old 참고
옵션
대신 데이터를 삭제할 수 있습니다.
mongod
인스턴스를 다시 시작할 때 가리킬 새 빈 데이터 디렉토리를 만듭니다. 이전 이름을 재사용할 수 있습니다. 예를 들면 다음과 같습니다.mkdir /data/db 포트 번호, 빈 데이터 디렉터리 및 복제본 세트를 지정하여 세컨더리 인스턴스에 대한
mongod
인스턴스를 재시작합니다. 이전에 사용한 것과 동일한 포트 번호를 사용할 수 있습니다. 다음과 유사한 명령을 실행합니다.경고
로컬 호스트가 아닌 에 바인딩하기 전에(예: 공개적으로 액세스할 수 있는) IP 주소 인 경우 무단 액세스 로부터 클러스터 를 보호했는지 확인합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버를 위한 보안 체크리스트를 참조하세요. 최소한 인증 을 활성화 하고 네트워크 인프라를 강화하는 것을 고려하세요.
mongod --port 27021 --dbpath /data/db --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)> mongosh
에서rs.addArb()
메서드를 사용하여 세컨더리를 중재자로 변환합니다.rs.addArb("<hostname><:port>") mongosh
에서rs.conf()
메서드를 호출하여 중재자가 복제본 세트에 속하는지 확인합니다.rs.conf() 중재자 멤버에는 다음이 포함되어야 합니다.
"arbiterOnly" : true
새 포트 번호에서 실행 중인 세컨더리를 중재자로 변환
애플리케이션이 세컨더리 서버에 직접 연결하거나 세컨더리 서버를 참조하는 연결 문자열이 있는 경우 MongoDB 쿼리가 세컨더리 서버에 도달하지 않도록 애플리케이션을 수정합니다.
새 포트 번호와 함께 사용할 빈 데이터 디렉토리를 새로 생성합니다. 예를 들면 다음과 같습니다.
mkdir /data/db-temp 새 데이터 디렉터리와 기존 복제본 세트를 지정하여 새 포트 번호에서 새
mongod
인스턴스를 시작합니다. 다음과 유사한 명령을 실행합니다.경고
로컬 호스트가 아닌 에 바인딩하기 전에(예: 공개적으로 액세스할 수 있는) IP 주소 인 경우 무단 액세스 로부터 클러스터 를 보호했는지 확인합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버를 위한 보안 체크리스트를 참조하세요. 최소한 인증 을 활성화 하고 네트워크 인프라를 강화하는 것을 고려하세요.
mongod --port 27021 --dbpath /data/db-temp --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)> 현재 프라이머리에 연결된
mongosh
에서rs.addArb()
메서드를 사용하여 새mongod
인스턴스를 중재자로 변환합니다.rs.addArb("<hostname><:port>") mongosh
에서rs.conf()
메서드를 호출하여 중재자가 복제본 세트에 추가되었는지 확인합니다.rs.conf() 중재자 멤버에는 다음이 포함되어야 합니다.
"arbiterOnly" : true 세컨더리를 종료합니다.
mongosh
의rs.remove()
메서드를 호출하여 복제본 세트에서 세컨더리를 제거합니다.rs.remove("<hostname><:port>") 복제본 세트에 이전 세컨더리가 더 이상 포함되어 있지 않은지 확인하려면
mongosh
에서rs.conf()
메서드를 호출합니다.rs.conf() 세컨더리 데이터 디렉터리를 아카이브 폴더로 옮깁니다. 예를 들면 다음과 같습니다.
mv /data/db /data/db-old 참고
옵션
대신 데이터를 삭제할 수 있습니다.