MongoDB 복제: 단계별 복제 세트 종합 가이드
게시 됨: 2020-02-27MongoDB에는 많은 기능이 있습니다. 그리고 복제는 그 중 두드러진 기능입니다. 복제를 수행하면 많은 이점이 있습니다. MongoDB를 사용하면 배열 객체와 포함된 배열을 포함하는 대규모 데이터 세트로 작업합니다. 배열 개체 및 포함된 배열로 작업할 때 데이터 처리 속도를 빠르게 유지해야 합니다. MongoDB의 실제 사용 사례를 읽고 중요성을 알아보세요.
그리고 해당 프로세스의 속도를 빠르게 유지하려면 데이터 가용성을 높게 유지해야 합니다. 높은 데이터 가용성을 보장하는 좋은 방법은 복제를 수행하는 것입니다. 복제는 또한 백업을 하는 데 도움이 되며 데이터 손실을 방지합니다.
이 기사에서는 MongoDB의 복제가 무엇인지, 어떻게 작동하는지, 어떻게 할 수 있는지 알아봅니다. 또한 MongoDB에서 복제를 수행할 때의 이점과 이 작업을 수행하는 동안 오류가 발생하는 경우 이를 해결할 수 있는 방법에 대해서도 알아봅니다.
시작하자.
목차
복제란 무엇입니까?
서버를 사용하는 동안 여러 MongoDB 서버에서 데이터를 동기화해야 합니다. 복제 프로세스는 이와 관련하여 도움이 됩니다. 다양한 서버에 동일한 데이터가 저장되도록 합니다.
복제는 데이터 가용성을 향상시킵니다. 데이터 손실은 조직의 중요한 문제이며 복제는 동일한 문제를 완화하는 데 도움이 됩니다. 높은 데이터 가용성과 중복성을 통해 단일 서버를 분실하더라도 데이터베이스가 안전하게 유지됩니다. 데이터베이스를 저장하는 유일한 서버가 다운되면 데이터베이스에 대한 액세스 권한을 잃게 됩니다.

복제는 이러한 문제에 직면하지 않도록 합니다. MongoDB 복제는 데이터의 접근성을 높이는 효과적인 방법이기도 합니다. 데이터의 추가 복사본을 갖는 것은 항상 유익합니다. 복제는 또한 서버 유지 관리의 중단 시간을 줄일 수 있습니다.
전체 서버를 보고, 백업 또는 재해 복구 전용으로 사용할 수 있습니다.
MongoDB에는 복제의 장점이 많이 있습니다. 그들을 알아보자.
복제의 이점
복제가 널리 사용되는 몇 가지 이유는 다음과 같습니다.
- 복제는 재해 발생 시 데이터를 복구하는 데 도움이 됩니다. 손실된 파일을 빠르게 복구할 수 있는 데이터 백업이 있어야 합니다.
- 귀하의 데이터는 항상 사용 가능한 상태로 유지됩니다. 즉, 복제를 통해 연중무휴 24시간 액세스할 수 있습니다.
- 정기적으로 복제를 수행하면 서버 유지 관리의 다운타임이 줄어듭니다.
- 복제는 읽기 확장성을 향상시킵니다. 복사본이 여러 개 있으면 데이터 읽기를 확장하는 데 도움이 됩니다.
여기에서 논의한 이점 외에도 복제에는 단점도 있습니다. 데이터 사본을 저장하기 때문에 더 많은 저장 공간이 필요합니다. 이것이 중요한 문제는 아니지만 주목할 가치가 있습니다. 서버의 저장 용량을 늘려야 할 수도 있습니다.
MongoDB 복제 작동 방식
복제를 수행하려면 MongoDB 복제본 세트를 사용해야 합니다. 동일한 데이터를 호스팅하는 mongod 인스턴스 그룹을 레플리카 세트라고 합니다. 복제본 세트에는 하나의 기본 노드가 포함됩니다. 기본 노드는 모든 쓰기 작업을 수신합니다.
복제본 세트에는 기본 노드가 하나만 있습니다. 다른 인스턴스는 보조 노드를 포함하여 세트의 기본 노드에서 기능을 적용합니다. 이런 식으로 모두 동일한 데이터 세트를 갖습니다. 다음은 MongoDB 복제본 세트의 작동 방식입니다.
- 복제본 세트에는 최소 3개의 노드가 있습니다.
- 복제본 세트의 한 노드가 기본 노드입니다. 그룹에 있는 다른 모든 노드는 보조 노드입니다.
- 복제 세트에서 데이터는 기본 노드에서 보조 노드로 복제됩니다.
- 자동 장애 조치가 발생하면(또는 유지 관리 중에) 기본을 결정하기 위한 선택이 수행됩니다. 그런 다음 노드는 새 기본을 선택합니다.
MongoDB에서 복제의 기본 개념에 대해 논의했으므로 이제 해당 프로세스를 시작할 수 있습니다.
1단계: 첫 번째 구성원 추가
이제 복제를 수행하려면 복제 세트가 필요하다는 것을 알고 있습니다. 따라서 MongoDB에서 복제의 첫 번째 단계는 인스턴스의 복제본 세트를 만드는 것입니다. 서버 X, 서버 Y 및 서버 Z의 세 대가 있다고 가정합니다. 이 세 서버 중 서버 X가 기본 서버이고 서버 X와 Y가 보조 서버입니다.
복제가 기본 서버에서 보조 서버로 발생한다는 것을 이미 알고 있습니다. 먼저 모든 mongod 인스턴스(복제본 세트에 추가할)가 다양한 서버에 설치되어 있는지 확인해야 합니다. 이렇게 하면 서버 중 하나가 다운되더라도 여러 대의 서버를 사용할 수 있으므로 MongoDB의 다른 인스턴스가 존재하게 됩니다.

그런 다음 모든 인스턴스가 연결할 수 있는지 확인해야 합니다. 서버 X에서 지정된 명령을 실행합니다.
몽고 – 호스트 서버Y – 포트 27017
몽고 – 호스트 ServerZ – 포트 27017
서버 X에서 발급한 후 나머지 서버에서 발급합니다. 이제 replSet 옵션을 사용하여 첫 번째 인스턴스를 시작합니다. replSet 옵션은 이 프로세스에 참여할 모든 서버의 모음을 제공합니다.
mongo –replSet “ReplicaA”
여기서 ReplicaA는 레플리카 세트의 이름입니다. 원하는 이름을 선택할 수 있지만 이 예에서는 이 용어를 사용합니다. 하나의 서버를 복제 세트에 추가한 후 복제 세트를 시작하려면 rs.initiate() 명령을 실행해야 합니다. 그런 다음 복제본 세트를 확인해야 합니다.
그렇게 하려면 rs.conf() 명령을 실행하십시오. 이 단계는 복제본이 문제 없이 최적으로 설정되었는지 확인하는 데 도움이 됩니다.
읽기: MongoDB 인터뷰 질문 및 답변
2단계: 보조 서버 추가
기본 서버를 추가한 후 이제 두 번째 서버를 추가하는 데 집중할 수 있습니다. 이를 위해 rs.add 명령을 사용할 수 있습니다. 이 명령에 추가하려는 보조 서버의 이름을 입력해야 합니다. 자동으로 추가됩니다.
이 예에서는 서버 X, 서버 Y 및 서버 Z가 있었습니다. 이 세 서버 중 서버 X가 복제본 세트의 기본 서버였습니다. 나머지 서버를 보조 서버로 추가해야 합니다. 이를 위해 다음 명령을 실행합니다.
rs.add("서버Y")
rs.add("서버Z")
그리고 그게 다야. 이제 복제본 세트에 두 개의 보조를 성공적으로 추가했습니다.
3단계: 재구성(또는 제거)
서버를 구축하고 추가하는 것은 동전의 한 면에 불과합니다. 구성 그룹에서 서버를 제거해야 할 수도 있습니다. 이를 위해서는 rs.remove 명령을 사용해야 합니다.
서버를 제거하기 전에 서버를 종료해야 합니다. 필요한 서버를 종료하려면 mongo 셸에서 db.shutdownserver 명령을 사용하십시오. 그런 다음 기본 서버에 연결하고 rs.remove를 사용하여 제거해야 하는 서버를 제거합니다. 이 명령은 복제본 세트에서 필요한 서버를 삭제합니다.
따라서 복제 세트에 서버 X, 서버 Y 및 서버 Z가 있고 그 중에서 서버 Z를 제거해야 하는 경우 다음 명령을 사용합니다.
rs.remove("서버Z")
복제 세트 오류를 수정하는 방법
MongoDB에서 복제를 수행하는 동안 몇 가지 오류가 발생할 수 있습니다. 이러한 오류를 해결하려면 다음 방법을 사용해야 합니다.
- 먼저 모든 mongo 인스턴스가 연결되어 있는지 확인합니다. 따라서 세 개의 서버, 즉 서버 X, 서버 Y 및 서버 Z가 있는 경우 이 세 서버 중 서버 X가 기본 서버입니다. 다음 명령을 실행합니다.
mongo -호스트 서버Y -포트 27017
몽고 -호스트 ServerZ -포트 27017
위의 두 명령을 실행하면 연결되었는지 확인하는 데 도움이 됩니다.
이제 rs.status인 status 명령을 실행합니다. rs.status 명령은 복제본 세트의 상태를 제공합니다. 복제 세트의 구성원은 서로에게 일부 메시지를 보냅니다. 우리는 이러한 메시지를 '심장박동'이라고 부릅니다. 이러한 메시지는 구성원이 작업 중(즉, 살아 있음)을 보여주기 때문에 이를 하트비트라고 합니다.
rs.status 명령은 이러한 메시지를 확인하고 복제본 세트의 구성원에 문제가 발생하는지 알려줍니다.

- oplog를 확인할 수 있습니다. MongoDB에서 oplog는 데이터베이스에서 수행한 쓰기 기록을 저장합니다. MongoDB는 복제본 세트의 다른 모든 구성원에게 쓰기를 복제하기 위해 Oplog의 도움을 받습니다.
- 필요한 구성원에 연결한 후 rs.printReplicationinfo 명령을 사용하여 Oplog를 확인할 수 있습니다. rs.printReplicationinfo 명령은 Oplog의 크기와 가득 찰 때까지 트랜잭션을 보유하는 한도를 표시합니다.
그리고 그게 다야. 이제 MongoDB 복제본 세트 문제를 해결하는 방법을 알게 되었습니다. 이 지식이 있으면 번거로움 없이 MongoDB에서 복제를 시작할 수 있습니다.
마지막 생각들
복제는 MongoDB에서 할 수 있는 많은 일 중 하나일 뿐입니다. 이 데이터베이스 프로그램의 사용법을 배우는 것은 쉽지 않습니다. 그러나 적절한 연습과 리소스를 사용하면 빠르게 사용하는 데 능숙해질 수 있습니다.
MongoDB와 MongoDB에 포함된 다양한 기능에 대해 자세히 알아보려면 블로그로 이동하십시오. 이 주제에 대한 지식을 확장하는 데 도움이 될 수 있는 유용한 기사를 많이 찾을 수 있습니다.
빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하세요. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.
세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.