MongoDB Replication là gì?
Sao chép được đề cập đến quá trình đảm bảo rằng cùng một dữ liệu có sẵn trên nhiều hơn một Máy chủ Mongo DB. Điều này đôi khi được yêu cầu với mục đích tăng tính khả dụng của dữ liệu.
Bởi vì nếu Máy chủ MongoDB chính của bạn gặp sự cố vì bất kỳ lý do gì, sẽ không có quyền truy cập vào dữ liệu. Nhưng nếu bạn đã sao chép dữ liệu sang một máy chủ khác theo định kỳ, bạn sẽ có thể truy cập dữ liệu từ một máy chủ khác ngay cả khi máy chủ chính bị lỗi.
Một mục đích khác của việc nhân rộng là khả năng cân bằng tải. Nếu có nhiều người dùng kết nối với hệ thống, thay vì tất cả mọi người kết nối vào một hệ thống, người dùng có thể được kết nối với nhiều máy chủ để có sự phân bổ tải như nhau.
Trong MongoDB, nhiều Máy chủ MongDB được nhóm thành các bộ được gọi là bộ Bản sao. Tập hợp Bản sao sẽ có một máy chủ chính sẽ chấp nhận tất cả các thao tác ghi từ các máy khách. Tất cả các cá thể khác được thêm vào tập hợp sau này sẽ được gọi là các cá thể thứ cấp có thể được sử dụng chủ yếu cho tất cả các thao tác đọc.
Trong hướng dẫn này, bạn sẽ học -
- Bộ bản sao: Thêm thành viên đầu tiên bằng rs.initiate ()
- Bộ bản sao: Thêm bản sao phụ bằng rs.add ()
- Bộ bản sao: Định cấu hình lại hoặc loại bỏ bằng cách sử dụng rs.remove ()
- Khắc phục sự cố Bộ bản sao
Bộ bản sao: Thêm thành viên đầu tiên bằng rs.initiate ()
Như đã đề cập trong phần trước, để kích hoạt sao chép, trước tiên chúng ta cần tạo một tập hợp bản sao của các cá thể MongoDB.
Hãy giả sử rằng với ví dụ của chúng ta, chúng ta có 3 máy chủ được gọi là ServerA, ServerB và ServerC. Trong cấu hình này, ServerA sẽ là máy chủ chính của chúng tôi và ServerB và ServerC sẽ là máy chủ phụ của chúng tôi. Ảnh chụp màn hình dưới đây sẽ cung cấp một ý tưởng tốt hơn về nó.
Dưới đây là các bước cần được thực hiện để tạo tập hợp bản sao cùng với việc bổ sung thành viên đầu tiên vào tập hợp.
Bước 1) Đảm bảo rằng tất cả các phiên bản mongod.exe sẽ được thêm vào tập hợp bản sao được cài đặt trên các máy chủ khác nhau. Điều này là để đảm bảo rằng ngay cả khi một máy chủ gặp sự cố, các máy chủ khác sẽ khả dụng và do đó các phiên bản MongoDB khác sẽ khả dụng.
Bước 2) Đảm bảo rằng tất cả các phiên bản mongo.exe có thể kết nối với nhau. Từ ServerA, đưa ra 2 lệnh dưới đây
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Tương tự, làm điều tương tự từ các máy chủ còn lại.
Bước 3) Bắt đầu phiên bản mongod.exe đầu tiên với tùy chọn replSet. Tùy chọn này cung cấp một nhóm cho tất cả các máy chủ sẽ là một phần của tập hợp bản sao này.
mongo -replSet "Replica1"
Trong đó "Replica1" là tên của tập hợp bản sao của bạn. Bạn có thể chọn bất kỳ tên có ý nghĩa nào cho tên tập hợp bản sao của mình.
Bước 4) Bây giờ máy chủ đầu tiên đã được thêm vào tập hợp bản sao, bước tiếp theo là bắt đầu tập hợp bản sao bằng cách đưa ra lệnh sau rs.initiate ()
Bước 5) Xác minh tập hợp bản sao bằng cách ra lệnh rs.conf () để đảm bảo bản sao được thiết lập đúng cách
Bộ bản sao: Thêm bản sao phụ bằng rs.add ()
Các máy chủ phụ có thể được thêm vào tập hợp bản sao chỉ bằng cách sử dụng lệnh rs.add. Lệnh này lấy tên của các máy chủ phụ và thêm các máy chủ vào tập hợp nhân bản.
Bước 1) Giả sử nếu bạn có ServerA, ServerB và ServerC, được yêu cầu là một phần của tập bản sao của bạn và ServerA, được xác định là máy chủ chính trong tập bản sao.
Để thêm ServerB và ServerC vào tập hợp bản sao, hãy đưa ra các lệnh
rs.add("ServerB")rs.add("ServerC")
Bộ bản sao: Định cấu hình lại hoặc loại bỏ bằng cách sử dụng rs.remove ()
Để xóa máy chủ khỏi tập cấu hình, chúng ta cần sử dụng lệnh "rs.remove"
Bước 1) Đầu tiên thực hiện tắt đối tượng mà bạn muốn xóa. Người ta có thể làm điều này bằng cách phát hành lệnh db.shutdownserver từ trình bao mongo.
Bước 2) Kết nối với máy chủ chính
Bước 3) Sử dụng lệnh rs.remove để xóa máy chủ được yêu cầu khỏi tập hợp bản sao. Vì vậy, giả sử nếu bạn có một tập hợp bản sao với ServerA, ServerB và ServerC và bạn muốn xóa ServerC khỏi tập hợp bản sao, hãy phát hành lệnh
rs.remove("ServerC")
Khắc phục sự cố Bộ bản sao
Các bước sau đây giống như những cách mà người ta có thể khắc phục sự cố khi gặp sự cố với việc sử dụng các bộ bản sao.
- Đảm bảo rằng tất cả các phiên bản mongo.exe có thể kết nối với nhau. Giả sử nếu bạn có 3 máy chủ là ServerA, ServerB và ServerC. Từ Máy chủ A, đưa ra 2 lệnh dưới đây
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Chạy lệnh rs.status. Lệnh này cung cấp trạng thái của tập hợp bản sao. Theo mặc định, mỗi thành viên sẽ gửi tin nhắn cho nhau được gọi là tin nhắn "nhịp tim" chỉ báo rằng máy chủ đang hoạt động và hoạt động. Lệnh "trạng thái" lấy trạng thái của các thông báo này và hiển thị nếu có bất kỳ vấn đề nào với bất kỳ thành viên nào trong tập bản sao.
- Kiểm tra kích thước của Oplog - Oplog là một tập hợp trong MongoDB lưu trữ lịch sử ghi đã được thực hiện vào cơ sở dữ liệu MongoDB. MongoDB sau đó sử dụng Oplog này để sao chép các ghi cho các thành viên khác trong tập bản sao. Để kiểm tra Oplog, hãy kết nối với cá thể thành viên được yêu cầu và chạy lệnh rs.printReplicationInfo. Lệnh này sẽ hiển thị kích thước của nhật ký và thời gian nó có thể giữ các giao dịch trong tệp nhật ký của mình trước khi nó đầy.
Tóm lược: