Làm cách nào để sao chép dữ liệu trong MongoDB?

Sao chép cơ sở dữ liệu là quá trình sao chép dữ liệu từ cơ sở dữ liệu trong một máy chủ sang cơ sở dữ liệu trong một máy chủ khác. Điều này bảo vệ thông tin của bạn trong trường hợp xảy ra thảm họa hoặc lỗi phần cứng, đồng thời cải thiện độ tin cậy và khả năng truy cập thông tin. Sao chép cung cấp tính sẵn sàng cao và dự phòng, các chủ đề quan trọng khi bạn quản lý một lượng dữ liệu khổng lồ

Trong MongoDB, quá trình này được thực hiện thông qua một bộ bản sao, nói một cách đơn giản, đó là một nhóm các quy trình mongod để giữ cùng một dữ liệu trên các máy chủ khác nhau. Một bộ bản sao phải có ít nhất ba nút. Một trong số chúng phải là chính và phần còn lại thứ cấp. Cấu trúc sao chép có thể có tối đa 50 nút và tối đa 7 thành viên biểu quyết, nhiều nút hơn có thể làm giảm hiệu suất. Tuy nhiên, tôi nghĩ bạn sẽ không cần số lượng nút này trừ khi bạn có yêu cầu toàn cầu. Đó là một câu chuyện khác

Có ba loại nút MongoDB

  • Sơ đẳng
    Chính là thành viên trong bộ bản sao nhận các thao tác ghi và đọc. Tuy nhiên, các hoạt động đọc có thể được chỉ ra cho các nút phụ đang thay đổi cấu hình tại thời điểm này để thực hiện truy vấn. Bên cạnh đó, bộ bản sao chỉ có thể có tối đa một nút chính
  • Sơ trung
    Thứ cấp là nút nơi dữ liệu được sao chép để duy trì một bản sao. Một bộ bản sao có thể có một hoặc nhiều nút phụ. Máy khách không thể ghi dữ liệu vào cái thứ cấp, chỉ họ mới có thể đọc từ chúng. Trong một số trường hợp nhất định, nút phụ có thể trở thành nút chính. Tôi sẽ nói thêm một chút bên dưới. Các nút phụ sao chép oplog (nhật ký hoạt động) của nút chính và áp dụng các hoạt động cho bộ dữ liệu của chúng một cách không đồng bộ. Vì quá trình sao chép không đồng bộ nên chức năng của cơ sở dữ liệu có thể tiếp tục nếu một hoặc nhiều thành viên bị lỗi
  • trọng tài
    Nút trọng tài không có bản sao của tập dữ liệu và không thể trở thành nút chính. Tuy nhiên, một trọng tài viên tham gia vào các cuộc bầu cử sơ bộ

bộ bản sao

Nếu nút chính ngừng hoạt động, một trong các nút phụ sẽ trở thành nút chính, điều này thông qua một cuộc bầu chọn, cho đến khi nút chính ban đầu trực tuyến trở lại. Ngoài ra, nếu cả hai nút phụ đều không khả dụng, thì nút chính sẽ trở thành nút phụ và cơ sở dữ liệu sẽ không thể truy cập được. Lưu ý rằng nút chính nhận tất cả các thao tác ghi và phần lớn các thao tác đọc. Do đó, bộ bản sao phải có một nút chính đang hoạt động

Bầu cử thành viên

Một cuộc bầu cử được sử dụng để xác định thành viên nào sẽ trở thành chính. Một cuộc bầu cử được kích hoạt để đáp ứng với nhiều sự kiện, chẳng hạn như

  • Bắt đầu một bộ sao chép
  • Thêm một nút mới vào bộ bản sao
  • Thực hiện các công việc bảo trì

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. Thuật toán bầu chọn sẽ cố gắng có sẵn thứ cấp có mức độ ưu tiên cao nhất. Mặt khác, các thành viên có giá trị ưu tiên bằng 0 không thể trở thành chính và không tham gia bầu cử

Nút phụ trở thành nút chính

Để đảm bảo độ bền, các thao tác ghi có cơ chế sao chép dữ liệu trong một số nút nhất định và đưa ra phản hồi cho máy khách. Cơ chế này được gọi là, "Write Mối quan tâm" bao gồm một số thành viên mang dữ liệu phải xác nhận một Mối quan tâm ghi trước khi hoạt động trở lại thành công. Theo mặc định, các bộ bản sao có giá trị là 1 dưới dạng mối quan tâm ghi, do đó, chỉ bộ chính phải xác nhận việc ghi trước khi trả lại xác nhận mối quan tâm ghi. Ngoài ra, bạn có thể tăng số lượng thành viên cần thiết để xác nhận thao tác ghi, bao nhiêu tùy thích nhưng nếu số lượng thành viên cao sẽ làm tăng độ trễ vì khách hàng phải đợi cho đến khi nhận được xác nhận từ số lượng thành viên đã chỉ định. Mặt khác, bạn có thể đặt mối quan tâm viết là “đa số”, tính toán hơn một nửa số thành viên sẽ nhận được sự thừa nhận của nó

Mối quan tâm viết là gì?

Mối quan tâm ghi mô tả mức độ xác nhận được yêu cầu từ MongoDB đối với các thao tác ghi vào một bộ bản sao. Số được chỉ định phải nhỏ hơn số nút thành viên. Ngoài ra, bạn có thể đặt mối quan tâm ghi là "đa số" nghĩa là gì để yêu cầu xác nhận rằng các thao tác ghi đã lan truyền đến phần lớn các thành viên được tính toán. Điều đó có nghĩa là, trong một cụm gồm ba nút mang dữ liệu, xác nhận sẽ được gửi đến máy khách sau khi hai trong số chúng nhận được dữ liệu. Theo mặc định, chính và một trong các phụ

Sở thích đọc là gì?

Đối với các thao tác đọc, bạn có thể chỉ định tùy chọn đọc mô tả cách cơ sở dữ liệu định tuyến truy vấn tới các thành viên của bộ bản sao. Theo mặc định, nút chính nhận thao tác đọc nhưng khách hàng có thể chỉ định tùy chọn đọc để gửi thao tác đọc tới các nút phụ. Sau đây là các tùy chọn cho tùy chọn đọc

  • chủ yếu
    Tất cả các hoạt động đọc đến từ nút chính
  • chínhPreferred
    Hầu hết các hoạt động đọc đến từ nút chính nhưng nếu điều này không khả dụng thì dữ liệu sẽ đến từ các nút phụ
  • thứ hai
    Tất cả các hoạt động đọc đến từ các nút phụ
  • trung họcPreferred
    Hầu hết các thao tác đọc đến từ các nút phụ nhưng nếu không có thao tác nào trong số này khả dụng thì dữ liệu đến từ nút chính
  • gần nhất
    Kết quả của thao tác đọc có thể đến từ bất kỳ thành viên nào của bộ bản sao, không quan trọng đây là chính hay phụ

Tóm lại, quá trình sao chép dữ liệu trên các máy chủ khác nhau là một lựa chọn tốt để có độ sẵn sàng và độ bền cao. Nói một cách đơn giản, sao chép là quá trình tạo dữ liệu dư thừa để bảo vệ nó. Ngoài ra, MongoDB đưa khái niệm này vào cốt lõi của nó, do đó nó đã có sẵn các công cụ để sử dụng nó một cách dễ dàng

Làm cách nào để thiết lập bản sao trong MongoDB?

Bây giờ, bạn có thể làm theo quy trình từng bước để thiết lập Bản sao trong MongoDB. .
Bản sao MongoDB Đặt cấu hình Bước 1. Thiết lập máy chủ
Bản sao MongoDB Đặt cấu hình Bước 2. Thiết lập tên máy chủ
Bước cấu hình thiết lập bản sao MongoDB 3. Tạo khóa
Bước cấu hình thiết lập bản sao MongoDB 4. Định cấu hình Bộ bản sao

Mục đích của việc sao chép trong MongoDB là gì?

Sao chép cung cấp 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.

MongoDB có đọc bản sao không?

Từ góc độ ứng dụng khách, liệu phiên bản MongoDB có đang chạy dưới dạng một máy chủ hay không (i. e. "độc lập") hoặc bộ bản sao trong suốt. Tuy nhiên, MongoDB cung cấp các cấu hình đọc và ghi bổ sung cho các bộ bản sao .

Bộ bản sao kết nối với MongoDB như thế nào?

Để kết nối với triển khai bộ bản sao, chỉ định tên máy chủ và số cổng của từng phiên bản, được phân tách bằng dấu phẩy và tên bộ bản sao làm giá trị của tham số replicaSet trong . Trong ví dụ sau, tên máy chủ là host1 , host2 và host3 và số cổng đều là 27017. . In the following example, the hostnames are host1 , host2 , and host3 , and the port numbers are all 27017 .