2014-07-08 1 views
0

여기 몽고 (몽고)에서 놀려고 애쓰는 초보자입니다. 내 수업에서 스케일링을 시연하려합니다. 즉, mongoDB의 인스턴스가 2 개 있고 실행 중이라는 것을 보여줄 필요가 있습니다. 마스터를 복제하고 다른 하나를 보조로 설정해야합니다.mongodb 장애 조치 데모! 도움이 필요합니다

주/마스터가 실패 할 경우 슬레이브/보조가 마스터가된다는 것을 보여주는 간단한 방법을 제안 해 줄 수 있습니까? 나는 MongoDB monitoring service 설정하는 것입니다 MongoDB를

답변

0

가장 쉬운 방법은 상당히 초보자를 가르치고으로

가능한 한 간단하게 보관하십시오. 몽고 (MongoD) 프로세스를 중지하고 다른 프로세스를 인계하십시오. 그러나 마스터/보조보다는 복제 세트를 사용하십시오 (the recommended approach).

0

사실,

  1. mongo
  2. 출력을 표시 사용이 "정상"mongod의 설정 복제 및 일반 mongod의 모두에 중재자
  3. 연결을 설정

    꽤 간단합니다 rs.status() 이전 보조 차

선출 될 때까지 또 다른 옵션은 간단한 자바 응용 프로그램을 작성하는 것,

  • 가 또 다시 rs.status()의 출력을 보여 현재 주를 종료합니다 (self 필드를 참고)하는 드라이버를 사용하여 매 초마다 하나의 항목을 쓰고 데이터베이스에있는 객체의 수를 출력하는 무한 루프에 넣습니다. 예외를 잡아 내고 문제가 발생했음을 알리십시오. 샤드 된 클러스터를 시작한 다음 응용 프로그램을 시작하십시오. 프로그램이 실행되는 동안 기본을 종료하십시오. 선거 중에 예외가 발생할 수 있습니다. 이전 보조가 1 차로 선출되는 즉시 문서 수는 다시 증가하기 시작해야합니다.

  • +0

    이것은 MMS에서 볼 수 있습니다. 인이 바로 마지막 PING \t 유형 \t \t \t REPL 설정 \t \t WIN-RVG4NTU8372 : 27001 \t PRIMARY \t \t \t 복제 \t \t WIN-RVG4NTU8372 : 27002 \t 차 \t \t \t 복제 \t \t WIN-RVG4NTU8372 : 27,003 \t 보조 \t \t \t 복제 – user3814878

    +0

    어떻게 주체를 셧다운합니까? 나는 {shutdown : 1, force : true}를 사용했으나 결코 작동하지 않았다. – user3814878

    +0

    SIGTERM을 사용하여 프로세스를 죽이거 나 주 서버에 연결하고'use admin; db.shutdownServer() –

    1

    MongoDB replica sets이 아니고 마스터/슬레이브입니다. 자동 장애 조치를 수행하려면 복제본 세트의 노드를 새 기본 노드로 선택할 수 있어야합니다. 복제 세트의 최소 노드 수는 3이어야합니다.이 노드는 3 개의 데이터 보유 노드 또는 2 개의 데이터 보유 노드 일 수 있으며 arbiter (선거에서 투표하는 노드) 일 수 있습니다.

    복제 만 사용하는 데모는 스케일링보다 더 나은 장애 조치 및 중복성에 관한 것입니다 (샤딩과 함께 더 나은 데모).

    당신이 개발 환경에서 복제를 설정하거나 분산됩니다 클러스터를 견딜 수 있도록 매우 간단한 (그리고 비 생산을) 방법을 원한다면, 내가 mtools의 일부입니다 mlaunch 스크립트를 사용하는 것이 좋습니다 것입니다.

    :

    mlaunch --replicaset --nodes 2 --arbiter 
    

    3 개 복제 세트를 기본으로 파편 (플러스 mongos 및 구성 서버)와 분산됩니다 클러스터를 만들려면 :

    예를 들어, 중재자 세트 3 노드의 복제본을 만들 수 있습니다

    mlaunch --replicaset --sharded 3 
    

    다른 설명에서 언급했듯이 무료 MMS Monitoring 서비스는 MongoDB 배포의 활동을 시각화하는 좋은 방법이며 db.shutdownServer()을 사용하여 특정 노드를 종료 한 후 결과를 볼 수 있습니다.