Đặt cược tốt nhất của bạn là sử dụng Viết quan tâm - những điều này cho phép bạn cho MongoDB biết một phần dữ liệu quan trọng như thế nào. Mối quan tâm Ghi nhanh nhất cũng là kém an toàn nhất - dữ liệu không được chuyển vào đĩa cho đến lần xả theo lịch trình tiếp theo. An toàn nhất sẽ xác nhận rằng dữ liệu đã được ghi vào đĩa trên một số máy trước khi quay trở lại.
Mối quan tâm viết mà bạn đang tìm kiếm là FSYNC_SAFE (ít nhất đó là những gì nó được gọi theo quan điểm của Trình điều khiển Java ) hoặc REPLICAS_SAFE xác nhận rằng dữ liệu của bạn đã được sao chép.
Hãy nhớ rằng MongoDB không có các giao dịch theo nghĩa truyền thống - quá trình khôi phục của bạn sẽ phải được thực hiện bằng tay vì bạn không thể yêu cầu cơ sở dữ liệu Mongo thực hiện việc này cho bạn.
Điều khác bạn cần làm là sử dụng --journal
tương đối mới (sử dụng Ghi nhật ký phía trước) hoặc sử dụng các tập hợp bản sao để chia sẻ dữ liệu của bạn trên nhiều máy nhằm tối đa hóa tính toàn vẹn của dữ liệu trong trường hợp xảy ra sự cố / mất điện.
Sharding không phải là một biện pháp bảo vệ chống lại sự cố phần cứng như một phương pháp chia sẻ tải khi xử lý các bộ dữ liệu đặc biệt lớn - không nên nhầm lẫn sharding với các bộ bản sao là một cách ghi dữ liệu vào nhiều đĩa trên nhiều máy .
Do đó, nếu dữ liệu của bạn đủ giá trị, bạn chắc chắn nên sử dụng các tập hợp bản sao, thậm chí có thể chọn nô lệ trong các trung tâm dữ liệu / vùng khả dụng / giá đỡ / v.v. khác để cung cấp khả năng phục hồi mà bạn yêu cầu.
Có / sẽ có (không thể nhớ rõ liệu điều này đã được triển khai hay chưa) một cách để chỉ định mức độ ưu tiên của các nút riêng lẻ trong một tập hợp bản sao sao cho nếu cái chính đi xuống cái chính mới được chọn là một trong cùng một dữ liệu trung tâm nếu một máy như vậy có sẵn (nghĩa là ngăn một nô lệ ở phía bên kia của đất nước trở thành chủ nhân trừ khi nó thực sự là lựa chọn duy nhất khác).