Bộ bản sao mongodb

Replication is the process of the clock data from many Server. Bản sao cung cấp sự dư thừa và tăng dữ liệu có tính khả dụng với nhiều bản sao dữ liệu trên nhiều Máy chủ cơ sở dữ liệu khác nhau. Bản sao bảo vệ cơ sở dữ liệu khỏi sự cố thoát của một Máy chủ nào đó. Replication cũng cho phép bạn phục hồi dữ liệu từ các lỗi trong phần cứng hoặc từ việc ngắt kết nối dịch vụ. Với các bản sao dữ liệu bổ sung, bạn có thể sử dụng để phục hồi, báo cáo hoặc sao lưu

In sao sử dụng Replication?

  • To doing an toàn cho dữ liệu của bạn
  • Tăng tính khả dụng cao cho dữ liệu (24*7)
  • Phục hồi dữ liệu do một lỗi nào đó
  • Không đủ thời gian để duy trì (như sao lưu, xây dựng lại chỉ mục)
  • Khả năng mở rộng khả năng đọc (đọc từ các bản sao bổ sung)
  • Replica Set là trong suốt cho ứng dụng

Cách Replication work in MongoDB

MongoDB sử dụng Replica Set để thực hiện Replication. Một bộ bản sao là một nhóm các khả năng hiện có của mongodb mà lưu trữ cùng một tập dữ liệu đó. Trong một bản sao, một nút là nút chính (có thể gọi là nút thứ cấp) sẽ nhận tất cả các hoạt động ghi. Tất cả các trường hợp có thể thực hiện (ví dụ) khác, thứ cấp, áp dụng các hoạt động từ nút thứ cấp để chúng có cùng một tệp dữ liệu. Bộ bản sao chỉ có thể có một nút cấp

  1. Replica Set là một nhóm của hai hoặc nhiều nút (nói chung, cần tối thiểu 3 nút)
  2. Trong một Bộ bản sao, một nút là nút cấp và các nút còn lại là sơ cấp
  3. Tất cả dữ liệu tái tạo từ sơ đồ nút cấp đến nút cấp
  4. Tại thời điểm duy trì tự động, việc lựa chọn thiết bị lập sơ cấp và một nút sơ cấp được lựa chọn
  5. Sau khi phục hồi nút thất bại, một lần nữa nó kết hợp lại Bộ bản sao và thực hiện công việc như một nút thứ cấp

Dưới đây là một sơ đồ đặc trưng cho Replication trong MongoDB, trong đó ứng dụng ở Client luôn luôn tương tác với node sơ cấp và node sơ cấp này sau đó tái tạo dữ liệu cho node thứ cấp

Bộ bản sao mongodb

Đặc điểm của Replica Set

  • Một cụm gồm N nút
  • Bất kỳ nút nào cũng có thể là sơ cấp
  • Tất cả các hoạt động ghi là ở sơ cấp
  • Tự động duy trì
  • Phục hồi tự động

Cài đặt một bộ bản sao

Trong chương trình này, chúng tôi sẽ chuyển đổi phiên bản mongo thành một Bộ bản sao. To convert to Replica Set, you follow the following step

  • Tắt máy chủ MongoDB đang chạy

Bây giờ, hãy khởi động MongoDB Server với tùy chọn xác định --replSet. Cú pháp cơ bản của --replSet as after


mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

Ví dụ


mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0

Nó sẽ bắt đầu một phiên bản mongod với tên rs0, trên cổng 27017. Bây giờ, bắt đầu dòng lệnh và kết nối tới phiên bản mongo này. Trong Mongo Client thông báo lệnh rs. started() to started a new Replica Set. Để kiểm tra cấu hình Bộ bản sao, bạn thông báo lệnh rs. conf(). Để kiểm tra trạng thái của Bộ bản sao, bạn thông báo lệnh rs. trạng thái()

Add members to Replica Set

Để thêm thành viên vào Bộ bản sao, hãy bắt đầu phiên bản mongod trên nhiều thiết bị. Bây giờ, hãy bắt đầu một Mongo Client và thông báo một lệnh rs. cộng()

cú pháp

Cú pháp cơ bản của lệnh rs. add() as after

>rs.add(HOST_NAME:PORT)

Ví dụ

Giả sử tên của mongod dụ của bạn là mongod1. net and are running on port 27017. To add this instance to Replica Set, you message command rs. add() trong Mongo Client


>rs.add("mongod1.net:27017")
>

You can add instance to Replica Set only when you were connect to thegrade node. Để kiểm tra xem bạn đã kết nối tới sơ đồ nút cấp này chưa, bạn đã thông báo lệnh db. isMaster() trong Mongo Client

Bản sao có nghĩa là nhân bản, trong MongoDB, bản sao là một tiến trình đồng bộ hóa dữ liệu

Cơ chế của nó như sau

Trong thực tế, nhiều trường hợp để máy chủ hoạt động ổn định người ta sử dụng nhiều hơn 1 máy chủ để lưu dữ liệu. Ví dụ dùng 2 server mongodb là A và B, khi dữ liệu mới được lưu vào A thì nó sẽ tiến hành sao lưu, đồng bộ sang B (quá trình replica) nếu A bị chết hoặc mất dữ liệu thì ta chuyển sang kết nối

Quá trình sao chép này khác với quá trình sao lưu / sao lưu tại chỗ là nó thực hiện theo thời gian thực. Tức là khi bạn thêm dữ liệu vào A thì nó sẽ khởi động tức thì đồng bộ sang B… Trong khi quá trình sao lưu thì thường thực hiện theo lịch (chạy cuối mỗi ngày, chạy hàng giờ…) và có thể xây dựng lại chỉ mục

(Sử dụng nhiều máy chủ có nhiều lợi thế nhưng không phải lúc nào ứng dụng cũng được nhé. Việc sử dụng nhiều máy chủ MongoDB kéo theo nhiều vấn đề như cấu hình và mã phức tạp hơn, chi phí tăng…)

Bộ bản sao trong MongoDB

Replica Set là một nhóm các máy chủ MongoDB trong hệ thống Replication. (Một nhóm máy chủ MongoDB tham gia thực hiện nhân bản. )

Mỗi máy chủ MongoDB trong Replica Set được coi là 1 nút hoặc 1 thể hiện

Trong một Replica Set, sẽ có một node chính (primary node) và nhiều node phụ (secondary node) + node trọng tài (arbiter node)

Nút chính sẽ thực hiện nhận tất cả các yêu cầu ghi để thực hiện bổ sung/sửa đổi/xóa dữ liệu, những thay đổi trên dữ liệu này sẽ được ghi lại vào tệp oplog, khi tệp oplog thay đổi, nó sẽ dựa vào thông tin thay đổi . (nút trọng tài sẽ không thực hiện việc ghi dữ liệu)

Bộ bản sao mongodb

Cơ chế chuyển đổi dự phòng tự động trong bộ bản sao

Các nút trong Replica Set luôn duy trì kết nối với nhau (kết nối heartbeat ). Khi nút chính bị mất kết nối với các nút còn lại (bị tắt, hết thời gian kết nối…) thì các nút còn lại sẽ tự động bầu ra 1 nút làm nút chính

Bộ bản sao mongodb

Quá trình bầu chọn nút chính giống như bỏ phiếu vậy, nút nào nhiều phiếu hơn thì trở thành nút chính. Tuy nhiên, trường hợp sẽ có 2 nút cùng số phiếu. Trong trường hợp này, nút trọng tài sẽ quyết định nút nào là nút chính

(Nút Arbiter chỉ có tác dụng ra nút bầu chọn chính chứ không chứa dữ liệu)

Bộ bản sao mongodb

Khi nút chính bị ngắt kết nối trước khi được kết nối trở lại vào Bộ bản sao thì nó sẽ trở thành nút phụ

Mặc định, Máy khách sẽ đọc dữ liệu từ nút chính. Tuy nhiên, ta có thể cấu hình cho phép máy khách đọc dữ liệu từ các nút phụ để giảm tải áp lực cho nút chính