MongoDB 복제: 생성 방법 MongoDB 복제 세트

MongoDB 복제?

복제는 둘 이상의 Mongo DB 서버에서 동일한 데이터를 사용할 수 있도록 보장하는 프로세스를 말합니다. 이는 데이터 가용성을 높이기 위해 필요한 경우도 있습니다.

왜냐면 당신의 메인이라면 MongoDB 어떤 이유로든 서버가 다운되어 데이터에 액세스할 수 없습니다. 그러나 정기적으로 다른 서버에 데이터를 복제해 놓으면 기본 서버에 장애가 발생하더라도 다른 서버의 데이터에 액세스할 수 있습니다.

복제의 또 다른 목적은 로드 밸런싱의 가능성입니다. 시스템에 연결하는 사용자가 많은 경우 모든 사람을 하나의 시스템에 연결하는 대신 사용자를 여러 서버에 연결하여 부하를 균등하게 분배할 수 있습니다.

In MongoDB, 여러 MongoDB 서버는 복제본 세트라는 세트로 그룹화됩니다. 복제본 세트에는 클라이언트의 모든 쓰기 작업을 수락하는 기본 서버가 있습니다. 이후 세트에 추가된 다른 모든 인스턴스는 모든 읽기 작업에 주로 사용될 수 있는 보조 인스턴스라고 합니다.

복제본 세트를 생성하는 방법 MongoDB rs.initiate()를 사용하여 첫 번째 구성원 추가

이전 섹션에서 언급했듯이 복제를 활성화하려면 먼저 복제본 세트를 생성해야 합니다. MongoDB 인스턴스.

이 예에서는 ServerA, ServerB, ServerC라는 3개의 서버가 있다고 가정해 보겠습니다. 이 구성에서는 ServerA가 기본 서버가 되고 ServerB와 ServerC가 보조 서버가 됩니다. 아래 스크린샷은 이에 대한 더 나은 아이디어를 제공합니다.

복제본 세트 생성 위치 MongoDB

다음은 생성을 위해 따라야 할 단계입니다. MongoDB 세트에 첫 번째 구성원이 추가됨에 따라 복제 세트가 추가됩니다.

단계 1) 모든 mongod.exe 인스턴스가 추가되었는지 확인하세요.

복제본 세트에 추가될 모든 mongod.exe 인스턴스가 다른 서버에 설치되어 있는지 확인하십시오. 이는 한 서버가 다운되더라도 다른 서버를 사용할 수 있도록 보장하기 위한 것입니다. MongoDB 사용할 수 있습니다.

단계 2) 모든 mongo.exe 인스턴스는 서로 연결됩니다.

모든 mongo.exe 인스턴스가 서로 연결될 수 있는지 확인하십시오. ServerA에서 아래 2개의 명령을 실행합니다.

mongo –host ServerB –port 27017
mongo –host ServerC –port 27017

마찬가지로 나머지 서버에서도 동일한 작업을 수행합니다.

단계 3) 첫 번째 mongod.exe 인스턴스를 시작합니다.

replSet 옵션을 사용하여 첫 번째 mongod.exe 인스턴스를 시작합니다. 이 옵션은 이 복제본 세트의 일부가 될 모든 서버에 대한 그룹화를 제공합니다.

mongo –replSet "Replica1"

여기서 "Replica1"은 복제 세트의 이름입니다. 복제 세트 이름으로 의미 있는 이름을 선택할 수 있습니다.

단계 4) 첫 번째 서버가 복제 세트에 추가됩니다.

이제 첫 번째 서버가 복제본 세트에 추가되었으므로 다음 단계는 다음을 실행하여 복제본 세트를 시작하는 것입니다.wing rs.initiate() 명령.

단계 5) 복제본 세트 확인

복제본이 올바르게 설정되었는지 확인하려면 rs.conf() 명령을 실행하여 복제본 세트를 확인하십시오.

복제본 세트: rs.add()를 사용하여 보조 추가

rs.add 명령만 사용하면 보조 서버를 복제본 세트에 추가할 수 있습니다. 이 명령은 보조 서버의 이름을 가져와 복제 세트에 서버를 추가합니다.

단계 1) 복제 세트의 일부가 되어야 하는 ServerA, ServerB 및 ServerC가 있고 ServerA가 복제 세트의 기본 서버로 정의되어 있다고 가정합니다.

ServerB와 ServerC를 복제본 세트에 추가하려면 다음 명령을 실행하세요.

rs.add("ServerB")
rs.add("ServerC")

복제본 세트: rs.remove()를 사용하여 재구성 또는 제거

구성 집합에서 서버를 제거하려면 "rs.remove" 명령을 사용해야 합니다.

단계 1) 먼저 제거하려는 인스턴스를 종료하십시오. mongo 쉘에서 db.shutdownserver 명령을 실행하여 이를 수행할 수 있습니다.

단계 2) 기본 서버에 연결

단계 3) rs.remove 명령을 사용하여 복제본 세트에서 필요한 서버를 제거합니다. 따라서 ServerA, ServerB 및 ServerC가 있는 복제본 세트가 있고 복제본 세트에서 ServerC를 제거하려는 경우 다음 명령을 실행하십시오.

rs.remove("ServerC")

복제본 세트 문제 해결

더 폴로wing 단계는 복제본 세트 사용 시 문제가 발생할 때 문제를 해결할 수 있는 방법과 동일합니다.

  1. 모든 mongo.exe 인스턴스가 서로 연결될 수 있는지 확인하십시오. ServerA, ServerB, ServerC라는 3개의 서버가 있다고 가정해 보겠습니다. 서버 A에서 아래 2개의 명령을 실행하십시오.
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
  1. rs.status 명령을 실행합니다. 이 명령은 복제본 세트의 상태를 제공합니다. 기본적으로 각 구성원은 서버가 살아 있고 작동 중임을 나타내는 "하트비트" 메시지라는 메시지를 서로에게 보냅니다. "status" 명령은 이러한 메시지의 상태를 가져오고 복제본 세트의 구성원에 문제가 있는지 보여줍니다.
  2. Oplog의 크기를 확인하세요. Oplog는 다음의 컬렉션입니다. MongoDB 에 수행된 쓰기 기록을 저장합니다. MongoDB 데이터 베이스. MongoDB 그런 다음 이 Oplog를 사용하여 복제본 세트의 다른 구성원에 쓰기를 복제합니다. Oplog를 확인하려면 필요한 멤버 인스턴스에 연결하고 rs.printReplicationInfo 명령을 실행하십시오. 이 명령은 로그 크기와 로그 파일이 가득 차기 전에 로그 파일에 트랜잭션을 보관할 수 있는 기간을 표시합니다.

요약

복제 MongoDB 둘 이상의 Mongo DB 서버에서 동일한 데이터를 사용할 수 있는지 확인하는 프로세스를 말합니다. 많은 회원(MongoDB 인스턴스)는 요구 사항에 따라 복제본 세트에 추가될 수 있습니다.