MongoDB Bản sao: Cách tạo MongoDB Bộ bản sao
Là gì MongoDB Nhân rộng?
Sao chép đề 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 Máy chủ Mongo DB. Điều này đôi khi được yêu cầu nhằm mục đích tăng tính khả dụng của dữ liệu.
Bởi vì nếu chính của bạn MongoDB Máy chủ ngừng hoạt động 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áy chủ khác theo định kỳ, bạn sẽ có thể truy cập dữ liệu 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 sao chép 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ì yêu cầu mọi người kết nối với 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 bằng nhau.
In MongoDB, nhiều MongoDB Các máy chủ được nhóm lại thành các bộ gọi là bộ Bản sao. Bộ bản sao sẽ có một máy chủ chính chấp nhận mọi thao tác ghi từ máy khách. Tất cả các phiên bản khác được thêm vào tập hợp sau này sẽ được gọi là phiên bản phụ có thể được sử dụng chủ yếu cho tất cả các thao tác đọc.
Cách tạo bộ bản sao trong MongoDB Thêm Thành viên đầu tiên bằng rs.initiate()
Như đã đề cập ở phần trước, để cho phép sao chép, trước tiên chúng ta cần tạo một bộ bản sao gồm MongoDB các trường hợp.
Giả sử trong ví dụ của chúng tôi, chúng tôi 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 và ServerB và ServerC sẽ là máy chủ phụ của chúng tôi. Ảnh chụp màn hình bên dưới sẽ cho bạn ý tưởng tốt hơn về nó.
Dưới đây là các bước cần thực hiện để tạo MongoDB bộ bản sao cùng với việc bổ sung thành viên đầu tiên vào bộ.
Bước 1) Đảm bảo tất cả các phiên bản mongod.exe được thêm vào
Đảm bảo rằng tất cả các phiên bản mongod.exe sẽ được thêm vào bộ bản sao đều được cài đặt trên các máy chủ khác nhau. Điều này nhằm đảm bảo rằng ngay cả khi một máy chủ ngừng hoạt động, các máy chủ khác vẫn sẵn sàng hoạt động và do đó các trường hợp khác của sự cố vẫn hoạt động bình thường. MongoDB sẽ có sẵn.
Bước 2) Tất cả các phiên bản mongo.exe kết nối với nhau
Đả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ự, thực hiện 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
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 bộ bản sao này.
mongo –replSet "Replica1"
Trong đó “Replica1” là tên của bộ 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 bộ bản sao của mình.
Bước 4) Máy chủ đầu tiên được thêm vào bộ bản sao
Bây giờ máy chủ đầu tiên đã được thêm vào bộ bản sao, bước tiếp theo là khởi tạo bộ bản sao bằng cách phát hành lệnh sau rs.initiate ().
Bước 5) Xác minh bộ bản sao
Xác minh bộ bản sao bằng cách ban hành lệnh rs.conf() để đảm bảo bản sao được thiết lập đúng cách.
Bộ bản sao: Thêm thứ cấp bằng rs.add()
Bạn có thể thêm máy chủ thứ cấp vào nhóm 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 bộ sao chép.
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 bộ bản sao và ServerA, được xác định là máy chủ chính trong bộ bản sao.
Để thêm ServerB và ServerC vào bộ bản sao, hãy thực hiện các lệnh
rs.add("ServerB") rs.add("ServerC")
Bộ bản sao: Cấu hình lại hoặc xóa bằng rs.remove()
Để xóa máy chủ khỏi bộ 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 phiên bản mà bạn muốn xóa. Người ta có thể thực hiện việc này bằng cách phát lệnh db.shutdownserver từ shell 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 bộ bản sao. Vì vậy, giả sử nếu bạn có một bộ bản sao với ServerA, ServerB và ServerC và bạn muốn xóa ServerC khỏi bộ bản sao, hãy ra lệnh
rs.remove("ServerC")
Khắc phục sự cố bộ bản sao
Các bước sau đây là những cách tương tự để khắc phục sự cố khi gặp phải sự cố khi sử dụng 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ử bạn có 3 máy chủ tên là ServerA, ServerB và ServerC. Từ Máy chủ A, đưa ra 2 lệnh bên dưới
mongo –host ServerB –port 27017 mongo –host ServerC –port 27017
- Chạy lệnh rs.status. Lệnh này cung cấp trạng thái của bộ 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ỉ cho biết rằng máy chủ vẫn hoạt động và hoạt động. Lệnh “trạng thái” nhận trạng thái của các thông báo này và hiển thị xem có bất kỳ vấn đề nào với bất kỳ thành viên nào trong bộ bản sao hay không.
- Kiểm tra kích thước của Oplog – Oplog là một bộ sưu tập trong MongoDB lưu trữ lịch sử ghi được thực hiện cho MongoDB cơ sở dữ liệu. MongoDB sau đó sử dụng Oplog này để sao chép việc ghi cho các thành viên khác trong bộ bản sao. Để kiểm tra Oplog, hãy kết nối với phiên bản 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ý trước khi nó đầy.
Tổng kết
Sao chép trong MongoDB đượ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 Máy chủ Mongo DB. Nhiều thành viên (MongoDB instance) có thể được thêm vào bộ Bản sao tùy theo yêu cầu.