Replica set trong mongodb
Sao chép cung cấp khả năng dự phòng và tăng tính khả dụng của dữ liệu. Với nhiều bản sao dữ liệu trên các máy chủ cơ sở dữ liệu khác nhau, sao chép cung cấp mức độ chịu lỗi đối với việc mất một máy chủ cơ sở dữ liệu Show Trong một số trường hợp, sao chép có thể tăng khả năng đọc vì máy khách có thể gửi các thao tác đọc đến các máy chủ khác nhau. Duy trì các bản sao dữ liệu trong các trung tâm dữ liệu khác nhau có thể tăng vị trí dữ liệu và tính khả dụng cho các ứng dụng phân tán. Bạn cũng có thể duy trì các bản sao bổ sung cho các mục đích chuyên dụng, chẳng hạn như khắc phục thảm họa, báo cáo hoặc sao lưu Sao chép trong MongoDBBộ bản sao là một nhóm gồm 11 phiên bản duy trì cùng một bộ dữ liệu. Một bộ bản sao chứa một số nút mang dữ liệu và tùy chọn một nút trọng tài. Trong số các nút mang dữ liệu, một và chỉ một thành viên được coi là nút chính, trong khi các nút khác được coi là nút phụ Nút chính nhận tất cả các thao tác ghi. Một bộ bản sao chỉ có thể có một bản chính có khả năng xác nhận ghi với ____12 mối quan tâm ghi; . [1] Sơ cấp ghi lại tất cả các thay đổi đối với bộ dữ liệu của nó trong nhật ký vận hành, tôi. e. xin lỗi. Để biết thêm thông tin về hoạt động của nút chính, hãy xem Bản sao đặt chính Phần phụ sao chép oplog của phần chính và áp dụng các thao tác cho tập dữ liệu của chúng sao cho tập dữ liệu của phần phụ phản ánh tập dữ liệu của phần chính. Nếu bầu cử sơ bộ không khả dụng, thì bầu cử phụ đủ điều kiện sẽ tổ chức một cuộc bầu cử để bầu cho mình bầu cử sơ bộ mới. Để biết thêm thông tin về các thành viên phụ, xem Bộ bản sao Thành viên phụ Trong một số trường hợp (chẳng hạn như bạn có một phiên bản chính và một phiên bản phụ nhưng hạn chế về chi phí không cho phép thêm một phiên bản phụ khác), bạn có thể chọn thêm phiên bản 1 vào bộ bản sao làm trọng tài. Một trọng tài tham gia vào các cuộc bầu cử nhưng không nắm giữ dữ liệu (i. e. không cung cấp dự phòng dữ liệu). Để biết thêm thông tin về người phân xử, xem Bản sao Set ArbiterTrọng tài sẽ luôn là trọng tài trong khi trọng tài chính có thể từ chức và trở thành trọng tài phụ và trọng tài phụ có thể trở thành trọng tài chính trong cuộc bầu cử Sao chép không đồng bộPhần phụ sao chép oplog của phần chính và áp dụng các hoạt động cho tập dữ liệu của chúng một cách không đồng bộ. Bằng cách để bộ dữ liệu của bộ phụ phản ánh bộ dữ liệu của bộ chính, bộ bản sao có thể tiếp tục hoạt động bất chấp sự cố của một hoặc nhiều thành viên Để biết thêm thông tin về cơ chế sao chép, hãy xem Oplog của Bộ bản sao và Đồng bộ hóa dữ liệu của Bộ bản sao Hoạt động chậmBắt đầu từ phiên bản 4. 2 (cũng có sẵn bắt đầu từ 4. 0. 6), các thành viên phụ của bộ bản sao hiện ghi nhật ký các mục oplog mất nhiều thời gian hơn ngưỡng hoạt động chậm để áp dụng. Những tin nhắn oplog chậm này
Trình hồ sơ không ghi lại các mục oplog chậm Độ trễ sao chép và kiểm soát luồngĐộ trễ sao chép đề cập đến lượng thời gian cần thiết để sao chép (i. e. sao chép) thao tác ghi trên sơ cấp sang thứ cấp. Một số khoảng thời gian trễ nhỏ có thể được chấp nhận, nhưng các vấn đề nghiêm trọng sẽ xuất hiện khi độ trễ sao chép tăng lên, bao gồm cả việc tạo áp lực bộ đệm trên bộ đệm chính. Bắt đầu từ MongoDB 4. 2, quản trị viên có thể giới hạn tốc độ áp dụng ghi chính của nó với mục tiêu giữ độ trễ của 2 dưới một giá trị tối đa có thể định cấu hình 3Theo mặc định, điều khiển luồng là 4Ghi chúĐể kiểm soát luồng tham gia, cụm bản sao được thiết lập/phân đoạn phải có. FeatureCompatibilityVersion (FCV) của 5 và đọc mối quan tâm 6. Nghĩa là, điều khiển luồng đã bật sẽ không có tác dụng nếu FCV không phải là 5 hoặc nếu phần lớn mối quan tâm đã đọc bị tắtVới kiểm soát luồng được bật, khi độ trễ tăng lên gần với 3, ghi trên chính phải lấy vé trước khi sử dụng khóa để áp dụng ghi. Bằng cách giới hạn số lượng vé được phát hành mỗi giây, cơ chế kiểm soát luồng cố gắng giữ độ trễ dưới mục tiêuĐể biết thêm thông tin, hãy xem Kiểm tra độ trễ sao chép và kiểm soát luồng Chuyển đổi dự phòng tự độngKhi một thành viên chính không giao tiếp với các thành viên khác của nhóm trong khoảng thời gian hơn 9 đã định cấu hình (10 giây theo mặc định), một thành viên phụ đủ điều kiện sẽ yêu cầu một cuộc bầu cử để tự đề cử mình làm thành viên chính mới. Cụm cố gắng hoàn thành bầu cử sơ bộ mới và tiếp tục hoạt động bình thườngBộ bản sao không thể xử lý các thao tác ghi cho đến khi cuộc bầu cử hoàn tất thành công. Bộ bản sao có thể tiếp tục phân phát các truy vấn đã đọc nếu các truy vấn đó được định cấu hình để chạy trên các truy vấn phụ trong khi truy vấn chính đang ngoại tuyến Thời gian trung bình trước khi một cụm bầu chọn chính mới thường không được vượt quá 12 giây, giả sử mặc định là 10. Điều này bao gồm thời gian cần thiết để đánh dấu chính làkhông khả dụng và gọi và hoàn tất cuộc bầu cử. Bạn có thể điều chỉnh khoảng thời gian này bằng cách sửa đổi tùy chọn cấu hình sao chép 11. Các yếu tố như độ trễ mạng có thể kéo dài thời gian cần thiết để hoàn tất các cuộc bầu cử bộ bản sao, do đó ảnh hưởng đến lượng thời gian mà cụm của bạn có thể hoạt động mà không có cuộc bầu chọn chính. Các yếu tố này phụ thuộc vào kiến trúc cụm cụ thể của bạn. Hạ thấp tùy chọn cấu hình sao chép 9 từ 13 mặc định (10 giây) có thể giúp phát hiện lỗi chính nhanh hơn. Tuy nhiên, cụm có thể gọi các cuộc bầu cử thường xuyên hơn do các yếu tố như độ trễ mạng tạm thời ngay cả khi cụm chính hoạt động bình thường. Điều này có thể dẫn đến tăng số lần khôi phục cho w. 1 thao tác ghiLogic kết nối ứng dụng của bạn phải bao gồm dung sai đối với chuyển đổi dự phòng tự động và các cuộc bầu cử tiếp theo. Trình điều khiển MongoDB có thể phát hiện việc mất tệp chính và tự động thử lại một số thao tác ghi nhất định một lần, cung cấp khả năng xử lý tích hợp bổ sung cho các cuộc bầu cử và chuyển đổi dự phòng tự động Thay đổi trong phiên bản 4. 2 Bắt đầu từ MongoDB 4. 2, trình điều khiển tương thích cho phép ghi có thể thử lại theo mặc định Bắt đầu từ phiên bản 4. 4, MongoDB cung cấp các lần đọc được nhân đôi để làm ấm trước bộ đệm của các thành viên phụ có thể bầu chọn với dữ liệu được truy cập gần đây nhất. Làm ấm trước bộ đệm của bộ đệm thứ cấp có thể giúp khôi phục hiệu suất nhanh hơn sau một cuộc bầu cử. Để tìm hiểu thêm về quy trình chuyển đổi dự phòng của MongoDB, hãy xem
Đọc hoạt độngđọc tùy chọnTheo mặc định, khách hàng đọc từ [1] chính; Sao chép không đồng bộ sang phần phụ có nghĩa là các lần đọc từ phần phụ có thể trả về dữ liệu không phản ánh trạng thái của dữ liệu trên phần chính. Các giao dịch nhiều tài liệu chứa thao tác đọc phải sử dụng tùy chọn đọc 14. Tất cả các hoạt động trong một giao dịch nhất định phải định tuyến đến cùng một thành viênĐể biết thông tin về cách đọc từ các bộ bản sao, hãy xem Tùy chọn đọc Hiển thị dữ liệuTùy thuộc vào mối quan tâm đọc, khách hàng có thể xem kết quả ghi trước khi ghi lâu bền
Đối với các hoạt động trong giao dịch nhiều tài liệu, khi giao dịch được thực hiện, tất cả các thay đổi dữ liệu được thực hiện trong giao dịch được lưu và hiển thị bên ngoài giao dịch. Nghĩa là, một giao dịch sẽ không thực hiện một số thay đổi của nó trong khi khôi phục các thay đổi khác Cho đến khi giao dịch được thực hiện, các thay đổi dữ liệu được thực hiện trong giao dịch sẽ không hiển thị bên ngoài giao dịch Tuy nhiên, khi một giao dịch ghi vào nhiều phân đoạn, không phải tất cả các hoạt động đọc bên ngoài đều cần đợi kết quả của giao dịch đã cam kết hiển thị trên các phân đoạn. Ví dụ: nếu một giao dịch được thực hiện và ghi 1 hiển thị trên phân đoạn A nhưng ghi 2 chưa hiển thị trên phân đoạn B, thì việc đọc bên ngoài tại mối quan tâm đã đọc 15 có thể đọc kết quả của ghi 1 mà không thấy ghi 2Để biết thêm thông tin về cách ly đọc, tính nhất quán và lần truy cập gần đây cho MongoDB, hãy xem Cách ly đọc, tính nhất quán và lần truy cập gần đây Đọc nhân đôiCác lần đọc được nhân đôi làm giảm tác động của các cuộc bầu cử sơ bộ sau khi ngừng hoạt động hoặc bảo trì theo kế hoạch. Sau khi chuyển đổi dự phòng trong một bộ bản sao, phần phụ đảm nhận vai trò chính mới sẽ cập nhật bộ đệm của nó khi có truy vấn mới. Trong khi bộ đệm đang khởi động, hiệu suất có thể bị ảnh hưởng Bắt đầu từ phiên bản 4. 4, các lần đọc được nhân đôi làm ấm trước bộ đệm của các thành viên bộ bản sao thứ cấp của 10. Để làm ấm trước bộ nhớ đệm của các tùy chọn thứ cấp có thể chọn, bộ nhớ chính phản chiếu một mẫu các hoạt động được hỗ trợ mà nó nhận được cho các tùy chọn thứ cấp có thể chọn. Kích thước của tập hợp con gồm các thành viên của bộ bản sao thứ cấp 10 nhận được các lần đọc được nhân đôi có thể được định cấu hình bằng tham số 12. Xem Bật/Tắt hỗ trợ đọc phản chiếu để biết thêm chi tiết. Ghi chúCác lần đọc được nhân đôi không ảnh hưởng đến phản hồi của chính đối với khách hàng. Các lần đọc rằng các bản sao chính đối với các bản sao phụ là các hoạt động "cháy và quên". Chính không chờ phản hồi Hoạt động được hỗ trợĐọc phản chiếu hỗ trợ các thao tác sau
Kích hoạt/Vô hiệu hóa hỗ trợ cho Mirrored ReadsBắt đầu từ MongoDB 4. 4, các lần đọc phản chiếu được bật theo mặc định và sử dụng 18 mặc định của 19. Để vô hiệu hóa các lần đọc được nhân đôi, hãy đặt tham số 12 thành 21
Với tốc độ lấy mẫu lớn hơn 22, máy nhân bản chính được hỗ trợ đọc một tập hợp con của 10 máy chủ phụ. Với tốc độ lấy mẫu là 19, phần chính phản ánh một phần trăm số lần đọc được hỗ trợ mà nó nhận được cho mỗi phần phụ có thể chọn. Hãy xem xét một bộ bản sao bao gồm một bộ chính và hai bộ phụ có thể lựa chọn. Nếu phần chính nhận được ____125 hoạt động có thể được nhân đôi và tốc độ lấy mẫu là ____119, phần chính sẽ gửi khoảng ____127 lượt đọc cho phần phụ có thể lựa chọn. Mỗi phụ có thể chọn chỉ nhận được một phần nhỏ trong số 10 lần đọc. Mỗi lần đọc được nhân đôi, được gửi đến một lựa chọn không trống được chọn ngẫu nhiên của các thứ cấp có thể bầu chọn Thay đổi tốc độ lấy mẫu cho các lần đọc được nhân đôiĐể thay đổi tốc độ lấy mẫu cho các lần đọc được nhân đôi, hãy đặt tham số 12 thành một số trong khoảng từ 22 đến 10
Để biết chi tiết, xem 12Số lần đọc được nhân đôiBắt đầu từ MongoDB 4. 4, lệnh 16 và phương thức shell 17 trả về số liệu 18 nếu bạn chỉ định trường trong thao tác
giao dịchBắt đầu từ MongoDB 4. 0, các giao dịch nhiều tài liệu có sẵn cho các bộ bản sao Các giao dịch nhiều tài liệu chứa thao tác đọc phải sử dụng tùy chọn đọc 14. Tất cả các hoạt động trong một giao dịch nhất định phải định tuyến đến cùng một thành viênCho đến khi giao dịch được thực hiện, các thay đổi dữ liệu được thực hiện trong giao dịch sẽ không hiển thị bên ngoài giao dịch Tuy nhiên, khi một giao dịch ghi vào nhiều phân đoạn, không phải tất cả các hoạt động đọc bên ngoài đều cần đợi kết quả của giao dịch đã cam kết hiển thị trên các phân đoạn. Ví dụ: nếu một giao dịch được thực hiện và ghi 1 hiển thị trên phân đoạn A nhưng ghi 2 chưa hiển thị trên phân đoạn B, thì việc đọc bên ngoài tại mối quan tâm đã đọc 15 có thể đọc kết quả của ghi 1 mà không thấy ghi 2Thay đổi luồngBắt đầu từ MongoDB 3. 6, các luồng thay đổi có sẵn cho các bộ bản sao và cụm phân đoạn. Các luồng thay đổi cho phép các ứng dụng truy cập các thay đổi dữ liệu theo thời gian thực mà không gặp phải sự phức tạp và rủi ro khi theo dõi oplog. Các ứng dụng có thể sử dụng các luồng thay đổi để đăng ký tất cả các thay đổi dữ liệu trên một hoặc nhiều bộ sưu tập Tính năng bổ sungBộ bản sao cung cấp một số tùy chọn để hỗ trợ nhu cầu ứng dụng. Ví dụ: bạn có thể triển khai một bộ bản sao với các thành viên trong nhiều trung tâm dữ liệu hoặc kiểm soát kết quả bầu cử bằng cách điều chỉnh 41 của một số thành viên. Các bộ bản sao cũng hỗ trợ các thành viên chuyên dụng cho các chức năng báo cáo, khắc phục thảm họa hoặc sao lưuXem Thành viên nhóm bản sao ưu tiên 0, Thành viên nhóm bản sao ẩn và Thành viên nhóm bản sao bị trì hoãn để biết thêm thông tin |