가장 좋은 방법은 MongoDB에 데이터의 중요성을 알릴 수있는 쓰기 문제입니다. 가장 빠른 Write Concern은 가장 안전하지 않습니다. 데이터는 다음 예약 플러시까지 디스크로 플러시되지 않습니다. 가장 안전한 방법은 데이터를 반환하기 전에 여러 대의 컴퓨터에서 디스크에 데이터가 기록되었는지 확인하는 것입니다.
FSYNC_SAFE (최소한 Java driver의 관점에서 볼 때 FSYNC_SAFE 임) 또는 데이터가 복제되었음을 확인하는 REPLICAS_SAFE입니다.
MongoDB에는 전통적인 의미의 트랜잭션이 없습니다. Mongo 데이터베이스에이를 수행하도록 알릴 수 없으므로 롤백을 수동으로 수행해야합니다.
다른 작업은 비교적 새로운 --journal
옵션 (Write Ahead Log 사용)을 사용하거나 복제본 세트를 사용하여 많은 컴퓨터에서 데이터를 공유함으로써 한 컴퓨터에서 데이터 무결성을 최대화 할 수 있습니다. 충돌/전력 손실.
샤딩은 특별히 큰 데이터 세트를 처리 할 때로드를 공유하는 방법으로 하드웨어 오류를 방지하지 않습니다. 샤딩을 여러 디스크에 데이터를 쓰는 방법 인 복제 세트와 혼동해서는 안됩니다. 하나 이상의 기계.
따라서 데이터가 충분히 가치있는 경우 필요로하는 복원력을 제공하려면 확실히 복제본 세트를 사용해야하며, 다른 데이터 센터/가용성 영역/랙/등의 슬레이브를 배치해야합니다.
replica 집합의 개별 노드 우선 순위를 지정하는 방법이 있습니다 (아직 구현되지 않았는지 여부를 기억할 수 없음). 마스터가 다운되면 선출 된 새 마스터가 하나임 (즉 다른 국가의 슬레이브가 실제로 유일한 옵션이 아닌 이상 마스터가되지 못하도록 막는) 같은 데이터 센터에서 사용할 수 있습니다.
정말 감사하고 방대한 답변을드립니다. 나는 언젠가는 다른 답장을 기다릴 것이고 만약 내가 새로운 것을 찾지 못한다면 고마워 할 것이다. –
tl; dr : 너는 어떤 방법 으로든 망했다! – Mrchief