Chức năng chính của tập hợp bản sao là cung cấp dự phòng dữ liệu và tính sẵn sàng cao cho việc triển khai MongoDB của bạn. Có nghĩa là, nếu nút chính trong một tập hợp bản sao bị hỏng vì bất kỳ lý do gì, nút phụ sẽ ngay lập tức tiếp quản làm nút chính mới (trung bình trong vòng ~ 10 giây). Xem Sao chép để biết thêm chi tiết về chủ đề này.
Trình điều khiển MongoDB chính thức biết về sự kiện bầu cử tập hợp bản sao này và sẽ cung cấp kết nối lại tự động và thử lại hoạt động cho bản chính mới. Từ quan điểm của ứng dụng, không có gì xảy ra ở phía cơ sở dữ liệu.
Một ưu điểm khác của việc sử dụng một tập hợp bản sao với nhiều bản thứ hai là khả năng nâng cấp / bảo trì không mất thời gian chết theo kiểu cuốn chiếu. Điều này có thể được thực hiện bằng cách sử dụng một thiết bị ngoại tuyến thứ cấp, thực hiện bảo trì trên nó, sau đó thực hiện bảo trì trên các thiết bị thứ hai khác, và cuối cùng từ bỏ thiết bị chính và thực hiện bảo trì trên nó. Một lần nữa vì các trình điều khiển MongoDB chính thức biết về những sự kiện này, về mặt kỹ thuật, bạn có thể thực hiện bảo trì trên cơ sở dữ liệu trực tiếp với tác động rất nhỏ và không có thời gian chết đối với ứng dụng.
Đây là một triết lý khác so với một máy chủ cơ sở dữ liệu nguyên khối, nơi chỉ có một máy chủ lớn thực sự. Mặc dù có những giá trị nhất định trong việc triển khai nguyên khối (đó là một cuộc thảo luận khác :)), MongoDB được thiết kế như một cơ sở dữ liệu phân tán có khả năng chịu lỗi. Một nhược điểm ngay lập tức của một máy chủ duy nhất là máy chủ phải luôn hoạt động 100%, nếu không ứng dụng sẽ bị gián đoạn. Một tập hợp bản sao được thiết kế để ứng dụng của bạn có thể có 100% thời gian hoạt động mà không gây áp lực lên các máy chủ riêng lẻ phải có 100% thời gian hoạt động.
Như một phần thưởng, một bộ sao chép có thể có thể cung cấp khả năng mở rộng đọc bằng cách thiết lập trình điều khiển để đọc từ các thư thứ hai (ghi phải luôn chuyển đến chính). Lưu ý rằng nên có một thiết kế cẩn thận nếu bạn muốn đọc phụ, vì điều này có thể ảnh hưởng đến khía cạnh tính khả dụng cao nếu bị lạm dụng.
Tóm lại, một tập hợp bản sao có thể cung cấp:
- Tính khả dụng cao và khả năng chịu lỗi
- Không bảo trì thời gian chết
- Dự phòng dữ liệu để mở rộng quy mô lần đọc
mà không yêu cầu phần cứng phải đáng tin cậy 100%. Đây là lý do tại sao một tập hợp bản sao được khuyến khích sử dụng trong triển khai sản phẩm.
Xem Kiến trúc triển khai thiết lập bản sao để biết các cân nhắc triển khai bộ bản sao chi tiết hơn.