Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

자체 관리형 세컨더리를 중재자로 전환

이 페이지의 내용

  • 세컨더리를 중재자로 변환하고 포트 번호 재사용
  • 새 포트 번호에서 실행 중인 세컨더리를 중재자로 변환

더 이상 데이터를 보유할 필요가 없지만 설정하다 가 프라이머리 를 선택할 수 있도록 설정하다 에 남아 있어야 하는 복제본 세트세컨더리있는 경우, 이 절차를 사용하여 세컨더리 를 중재자 로 변환할 수 있습니다. 튜토리얼. 두 절차는 운영상 동일합니다.

  • 이전 세컨더리와 동일한 포트에서 중재자를 작동할 수 있습니다. 이 절차에서는 반드시 세컨더리를 종료하고 해당 데이터를 제거한 후 다시 시작하여 중재자로 재구성해야 합니다.

    이 절차에 대해서는 세컨더리를 중재자로 변환하고 포트 번호 재사용을 참조하세요.

  • 새 포트에서 중재자를 실행합니다. 이 절차에서는 세컨더리로 실행 중인 인스턴스를 종료하기 전에 서버를 중재자로 재구성할 수 있습니다.

    이 절차는 세컨더리 포트를 새 포트 번호에서 실행되는 중재자로 변환을 참조하세요.

  1. 애플리케이션이 세컨더리에 직접 연결된 경우 MongoDB 쿼리가 세컨더리에 도달하지 않도록 애플리케이션을 수정합니다.

  2. 세컨더리를 종료합니다.

  3. 메서드를 호출하여 복제본 세트 에서 세컨더리 를 제거합니다.rs.remove() 의 현재 프라이머리 에 연결된 상태에서 mongosh 이 작업을 수행합니다.

    rs.remove("<hostname><:port>")
  4. mongosh에서 rs.conf() 메서드를 호출하여 복제본 세트에 더 이상 세컨더리가 포함되지 않는지 확인합니다.

    rs.conf()
  5. 세컨더리 데이터 디렉터리를 아카이브 폴더로 옮깁니다. 예를 들면 다음과 같습니다.

    mv /data/db /data/db-old

    참고

    옵션

    대신 데이터를 삭제할 수 있습니다.

  6. mongod 인스턴스를 다시 시작할 때 가리킬 새 빈 데이터 디렉토리를 만듭니다. 이전 이름을 재사용할 수 있습니다. 예를 들면 다음과 같습니다.

    mkdir /data/db
  7. 포트 번호, 빈 데이터 디렉터리 및 복제본 세트를 지정하여 세컨더리 인스턴스에 대한 mongod 인스턴스를 재시작합니다. 이전에 사용한 것과 동일한 포트 번호를 사용할 수 있습니다. 다음과 유사한 명령을 실행합니다.

    경고

    로컬 호스트가 아닌 에 바인딩하기 전에(예: 공개적으로 액세스할 수 있는) IP 주소 인 경우 무단 액세스 로부터 클러스터 를 보호했는지 확인합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버를 위한 보안 체크리스트를 참조하세요. 최소한 인증 을 활성화 하고 네트워크 인프라를 강화하는 것을 고려하세요.

    mongod --port 27021 --dbpath /data/db --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  8. mongosh에서 rs.addArb() 메서드를 사용하여 세컨더리를 중재자로 변환합니다.

    rs.addArb("<hostname><:port>")
  9. mongosh에서 rs.conf() 메서드를 호출하여 중재자가 복제본 세트에 속하는지 확인합니다.

    rs.conf()

    중재자 멤버에는 다음이 포함되어야 합니다.

    "arbiterOnly" : true
  1. 애플리케이션이 세컨더리 서버에 직접 연결하거나 세컨더리 서버를 참조하는 연결 문자열이 있는 경우 MongoDB 쿼리가 세컨더리 서버에 도달하지 않도록 애플리케이션을 수정합니다.

  2. 새 포트 번호와 함께 사용할 빈 데이터 디렉토리를 새로 생성합니다. 예를 들면 다음과 같습니다.

    mkdir /data/db-temp
  3. 새 데이터 디렉터리와 기존 복제본 세트를 지정하여 새 포트 번호에서 새 mongod 인스턴스를 시작합니다. 다음과 유사한 명령을 실행합니다.

    경고

    로컬 호스트가 아닌 에 바인딩하기 전에(예: 공개적으로 액세스할 수 있는) IP 주소 인 경우 무단 액세스 로부터 클러스터 를 보호했는지 확인합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버를 위한 보안 체크리스트를 참조하세요. 최소한 인증 을 활성화 하고 네트워크 인프라를 강화하는 것을 고려하세요.

    mongod --port 27021 --dbpath /data/db-temp --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  4. 현재 프라이머리에 연결된 mongosh에서 rs.addArb() 메서드를 사용하여 새 mongod 인스턴스를 중재자로 변환합니다.

    rs.addArb("<hostname><:port>")
  5. mongosh에서 rs.conf() 메서드를 호출하여 중재자가 복제본 세트에 추가되었는지 확인합니다.

    rs.conf()

    중재자 멤버에는 다음이 포함되어야 합니다.

    "arbiterOnly" : true
  6. 세컨더리를 종료합니다.

  7. mongoshrs.remove() 메서드를 호출하여 복제본 세트에서 세컨더리를 제거합니다.

    rs.remove("<hostname><:port>")
  8. 복제본 세트에 이전 세컨더리가 더 이상 포함되어 있지 않은지 확인하려면 mongosh에서 rs.conf() 메서드를 호출합니다.

    rs.conf()
  9. 세컨더리 데이터 디렉터리를 아카이브 폴더로 옮깁니다. 예를 들면 다음과 같습니다.

    mv /data/db /data/db-old

    참고

    옵션

    대신 데이터를 삭제할 수 있습니다.

돌아가기

2차 우선 순위 차단