Latest web development tutorials

MongoDB를 복사 (복제 세트)

MongoDB의 복제는 여러 서버에 데이터를 동기화하는 과정이다.

복사 된 데이터의 유용성을 향상시키기 위해 다수의 서버에 데이터를 백업 데이터 중복 저장 카피를 제공하고, 데이터의 보안을 보장 할 수있다.

복사 또한 하드웨어 오류와의 서비스 중단의 데이터를 복구 할 수 있습니다.


사본은 무엇입니까?

  • 데이터 보안 보호
  • 높은 데이터 가용성 (24 * 7)
  • 재해 복구
  • (예 : 백업, 인덱스, 압축을 재 구축) 다운 타임 유지 보수 없음
  • 분산 데이터 읽기

MongoDB의 복제 작품

MongoDB의 복제는 적어도 두 개의 노드를 필요로한다. 차 노드들 중 하나는 클라이언트 요청을 처리해야하고, 나머지는 기본 노드에서의 데이터 복제를 담당하는 노드이다.

마스터 - 슬레이브, 마스터 멀티 슬레이브 : 방식에 공통 각 노드를 MongoDB를.

마스터 노드로부터 얻어지는 모든 작업 oplog 주기적이어서, 이들 동작을 폴링 마스터 노드와의 일관성을 보장하기 위해 데이터로부터의 데이터를 자신의 복사본에 이러한 작업을 수행하는 마스터 레코드.

MongoDB를 아래에 나타 구조를 복제 :

MongoDB의 복제 차트

전체의 상기 구조는 전체 클라이언트 마스터 노드는 클라이언트 데이터는 기본 노드에 기록되어있는 데이터를 마스터 노드와 데이터 교환 노드에서 데이터 일관성을 보장하는 판독한다.

복제 설정 기능 :

  • N 클러스터 노드
  • 어떤 노드가 마스터 노드로서 사용될 수있다
  • 기본 노드의 모든 쓰기 작업
  • 자동 장애 복구
  • 자동 복구

MongoDB의 복제 세트 설정

이 튜토리얼에서, 우리는 다음 단계에 따라 실험을 동일한 마스터 - 슬레이브 MongoDB를 MongoDB를를 사용 :

1. 닫기 MongoDB를 서버가 실행 중입니다.

이제 MongoDB를 --replSet 옵션을 지정하여 시작하자. 다음과 같이 --replSet 기본 구문은 다음과 같습니다

mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0

위의 예는 MongoDB를 인스턴스라고 RS0을 시작합니다, 포트 번호는 27017입니다.

상자와 연결하여 MongoDB 서비스를 시작한 후 명령 프롬프트를 엽니 다.

몽고에서 클라이언트는 명령 rs.initiate () 새로운 복제 세트를 시작하기 위해 사용합니다.

우리는 복제 세트의 구성을보고 rs.conf ()를 사용할 수 있습니다

rs.status () 명령을 사용하여 설정 복제의 상태를 확인


복제 세트 구성원 추가

복제 세트의 멤버를 추가, 우리는 몽고 서비스를 시작하기 위해 여러 서버를 사용합니다. 몽고 클라이언트를 입력하고 복제 세트의 구성원을 추가 () 메소드를 rs.add 사용합니다.

문법

다음과 같이 rs.add () 명령 기본 구문은 다음과 같습니다
>rs.add(HOST_NAME:PORT)

당신은 mongod1.net라는 그룹, 포트 번호 몽고 서비스의 27017를 시작하자. 다음과 같이 클라이언트 명령 창에서) (rs.add 사용하여 복제 세트에 추가 명령, 명령은 다음과 같습니다

>rs.add("mongod1.net:27017")
>

당신은 단지 노드를 마스터 할 수 MongoDB를이 서비스는 현재 명령 db.isMaster을 사용할 수 있습니다 몽고 기본 노드를 실행 여부를 판단, 복제 세트에 몽고 서비스를 추가합니다 ().

호스트가 다운 모든 서비스가 중지되고, 아래로 설정 호스트 복제 한 후, 사본을 기본 노드를 인수 할 마스터 노드가되고 가동 중지 시간을 표시되지 않습니다 후 공동의 마스터와 슬레이브로 설정 MongoDB의 복제는 마스터 다른 상황.