English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MongoDB 복제는 여러 서버에 데이터를 동기화하는 과정입니다.
복제는 데이터의 중복 백업을 제공하고, 여러 서버에 데이터 복제를 저장하여 데이터의 가용성을 높입니다. 또한 데이터의 보안을 보장할 수 있습니다.
복제는 하드웨어 고장 및 서비스 중단에서 데이터를 복구할 수 있도록 합니다.
mongodb의 복제는 최소 두 개의 노드가 필요합니다. 그 중 하나는 메인 노드로, 클라이언트 요청을 처리하며, 나머지는 슬라브 노드로, 메인 노드의 데이터를 복제합니다.
mongodb 각 노드의 일반적인 구성은: 하나의 메인 노드와 하나의 슬라브 노드, 하나의 메인 노드와 여러 개의 슬라브 노드입니다.
메인 노드는 모든 작업을 기록하는 oplog를 유지하며, 슬라브 노드는 주기적으로 메인 노드에서 이 작업을 가져와 자신의 데이터 복제에 이 작업을 적용하여 슬라브 노드의 데이터가 메인 노드와 일치하도록 합니다.
MongoDB 복제 구조도는 다음과 같습니다:
위 구조도에서 클라이언트는 메인 노드에서 데이터를 읽고, 클라이언트가 메인 노드에 데이터를 쓸 때, 메인 노드와 슬라브 노드는 데이터 일관성을 보장하기 위해 데이터 교류를 합니다.
이 튜토리얼에서는 MongoDB를 사용하여 MongoDB 주종 실험을 진행합니다. 작업 단계는 다음과 같습니다:
1제공하는 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
위 예제는 rs0라는 이름의 MongoDB 예제를 시작하며, 포트 번호는 다음과 같습니다:27017
시작 후 명령 프롬프트를 엽니다. mongoDB 서비스에 연결합니다.
Mongo客户端에서 rs.initiate() 명령어를 사용하여 새로운 복제집을 시작합니다.
복제집 구성을 확인하려면 rs.conf() 사용할 수 있습니다.
복제집 상태 확인하려면 rs.status() 명령어 사용
복제 집합의 멤버를 추가하려면 여러 서버를 사용하여 mongo 서비스를 시작해야 합니다. MongoDB 클라이언트에 접속하여 rs.add() 메서드를 사용하여 복제 집합의 멤버를 추가합니다.
>rs.add(HOST_NAME:PORT)
이미 mongod로 이름이 지정된 서비스를 시작했습니다.1.net, 포트 번호는27017의 MongoDB 서비스. 고객 명령 창에서 rs.add() 명령을 사용하여 복제 집합에 추가할 수 있습니다. 명령은 다음과 같습니다:
>rs.add("mongod1.net:27017") >
MongoDB에서는 마스터 노드를 통해만 MongoDB 서비스를 복제 집합에 추가할 수 있습니다. 현재 실행 중인 MongoDB 서비스가 마스터 노드인지 확인하려면 db.isMaster() 명령을 사용할 수 있습니다.
MongoDB의 복제 집합은 일반적인 주-종주식과 다릅니다. 주-종주식은 마스터가 고장 나면 모든 서비스가 중지되지만, 복제 집합은 마스터가 고장 나면 복제가 마스터 노드를 대체하여 마스터 노드가 되고, 고장이 발생하지 않습니다.