Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Cách sao chép trong MongoDB hoạt động (Bộ bản sao). Bản sao là khái niệm đồng bộ hóa dữ liệu từ một máy chủ, còn được gọi là máy chủ chính đến một hoặc nhiều cơ sở dữ liệu bản sao. Điều này đảm bảo tính sẵn sàng cao của dữ liệu và dự phòng do nhiều bản sao dữ liệu được trải rộng trên một số máy chủ cơ sở dữ liệu. Trong trường hợp một máy chủ gặp sự cố, dữ liệu luôn có thể được lấy từ các nút phụ

 

Sao chép cung cấp khả năng chịu lỗi và cải thiện khả năng truy cập dữ liệu do các bản sao của cùng một dữ liệu được sao chép trên nhiều máy chủ trong thời gian thực. Điều này giúp khắc phục thảm họa và duy trì hoạt động kinh doanh trong trường hợp máy chủ chính bị lỗi gây gián đoạn và ngừng hoạt động dịch vụ

Thực hiện theo hướng dẫn này để khám phá Cách sao chép trong MongoDB Hoạt động (Bộ bản sao)

cũng đọc

SQLite so với MongoDB – Đâu là sự khác biệt?

Khái niệm về sao chép

Trong bản sao MongoDB, toàn bộ tập dữ liệu từ một máy chủ cơ sở dữ liệu MongoDB duy nhất được sao chép và đồng bộ hóa trên nhiều phiên bản máy chủ. Điều này cung cấp dự phòng, do đó, dẫn đến tính sẵn sàng cao của dữ liệu. Ngoài ra, nó cũng loại bỏ bất kỳ điểm lỗi đơn lẻ nào nếu máy chủ phát sinh sự cố có thể dẫn đến thời gian ngừng hoạt động của dịch vụ

Hơn nữa, sao chép đạt được thông qua các bộ bản sao. Bộ bản sao là một nhóm các phiên bản mongodb lưu trữ cùng một bộ dữ liệu. Nó bao gồm một nút chính chấp nhận tất cả các thao tác ghi và một hoặc nhiều nút phụ trên đó dữ liệu được sao chép và đồng bộ hóa. Điều này đảm bảo rằng, tại bất kỳ thời điểm nào, dữ liệu trên nút chính hoàn toàn giống với dữ liệu trên nút phụ

Điều quan trọng, trong trường hợp máy chủ chính ngừng hoạt động do sự cố hệ thống, một trong các máy chủ phụ sẽ tiếp quản và trở thành nút chính mới thông qua bầu cử. Ngoài ra, nếu máy chủ bị lỗi trực tuyến trở lại, thì nó sẽ trở thành  nút phụ

Dưới đây là một số điểm chính cần ghi nhớ khi làm việc với bản sao

  1. Trong một bộ bản sao, một nút được chỉ định là nút chính trong khi các nút còn lại là nút phụ. Thông thường nên sử dụng tối thiểu hai nút phụ
  2. Tất cả dữ liệu sao chép từ nút chính sang nút phụ
  3. Trong trường hợp nút chính bị lỗi, quá trình chuyển đổi dự phòng tự động sẽ bắt đầu và một nút chính mới được chọn giữa các nút phụ
  4. Sau khi phục hồi nút chính bị lỗi, nó sẽ tham gia lại bộ sao chép, nhưng lần này là nút phụ

cũng đọc

Cách tạo đa nút MongoDB Cluster trên Ubuntu 20. 04

Lợi ích của việc sao chép

Tóm lại, đây là một số lợi ích của việc triển khai sao chép cơ sở dữ liệu trên thiết lập MongoDB của bạn

1. Tính sẵn sàng cao của dữ liệu

Khái niệm dữ liệu được đồng bộ hóa đồng đều trên nhiều máy chủ đảm bảo dữ liệu luôn sẵn sàng 24/7. Nhờ dự phòng, mọi điểm lỗi đơn lẻ đều bị loại bỏ, do đó cải thiện khả năng truy cập vào dữ liệu của bạn

2. Khắc phục thảm họa

Tính sẵn sàng cao đảm bảo khắc phục thảm họa trong trường hợp có bất kỳ tình huống nào xảy ra. Mọi lỗi đều có thể dễ dàng giải quyết bằng cách truy xuất dữ liệu từ các nút khác chứa các bản sao dữ liệu chính xác

3. Chia tỷ lệ ngang

Bản thân kiến ​​trúc sao chép dẫn đến tỷ lệ ngang trong đó cùng một dữ liệu được đồng bộ hóa trên nhiều nút

4. An toàn dữ liệu

Vì dữ liệu nằm trên nhiều máy chủ nên quyền truy cập vào dữ liệu và sự an toàn của nó được đảm bảo nếu máy chủ chính bị lỗi vì bất kỳ lý do gì

Trong các bước sau đây, chúng tôi chứng minh bằng các ví dụ sao chép trong MongoDB

cũng đọc

Cách cài đặt máy chủ cộng đồng MongoDB trên Azure/AWS

Bản sao MongoDB hoạt động như thế nào

Về cơ bản, trong MongoDB, có thể sao chép bằng cách sử dụng bộ bản sao bao gồm hai hoặc nhiều nút MongoDB hoạt động cùng nhau như một đơn vị. Phương pháp hay nhất yêu cầu tối thiểu ba nút trong bộ bản sao MongoDB

1. Nút đầu tiên là nút chính. Nút này chấp nhận tất cả các hoạt động đọc và ghi

2. Các nút còn lại được gọi là nút phụ. Họ sao chép dữ liệu từ nút chính trong thời gian thực

Dưới đây là thiết lập sao chép MongoDB cơ bản

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Nguồn hình ảnh.

Nút chính chấp nhận thao tác đọc và ghi trong khi các nút còn lại chấp nhận thao tác đọc

 

Trong trường hợp nút chính gặp thời gian ngừng hoạt động hoặc không khả dụng, một trong các nút phụ sẽ đảm nhận vai trò của nút chính. Nút phụ phù hợp nhất để đảm nhận vai trò của nút chính được chọn thông qua quy trình được gọi là bầu chọn Bộ bản sao

cũng đọc

Cách cài đặt MongoDB trên Ubuntu 20. 04 (Hướng dẫn Phiên bản Cộng đồng)

Quá trình nhịp tim MongoDB

Heartbeat là quá trình đánh giá trạng thái hiện tại của các nút trong bộ bản sao. Các nút ping lẫn nhau hai giây một lần và nếu một nút không gửi được lệnh ping trong vòng 10 giây, thì các nút khác trong bộ bản sao sẽ đánh dấu nút đó là không thể truy cập được

Điều này rất quan trọng đối với các quy trình chuyển đổi dự phòng tự động trong đó nút chính không thể truy cập được và các nút phụ khác không nhận được nhịp tim từ nút đó trong khung thời gian cho phép. Trong trường hợp này, MongoDB sẽ tự động nâng cấp máy chủ phụ để hoạt động như máy chủ chính

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Nguồn hình ảnh.

cũng đọc

Cách cài đặt MongoDB trên CentOS 8 (Hướng dẫn phiên bản cộng đồng)

Bầu cử MongoDB ReplicaSet

Một bộ bản sao tiến hành 'bầu chọn' để xác định nút nào sẽ trở thành nút chính. Một cuộc bầu cử thường được kích hoạt để đáp ứng với các sự kiện sau

A. Mất kết nối giữa các nút phụ và nút chính vượt quá thời gian chờ đã định cấu hình, theo mặc định là 10 giây

B. Thêm một nút mới vào bộ bản sao

C. Khởi tạo một bộ bản sao

D. Bảo trì bộ bản sao bằng các phương pháp như rs. stepDown() hoặc rs. các phương thức cấu hình lại ()

Để bộ bản sao xử lý các thao tác ghi, quá trình bầu chọn phải hoàn tất thành công. Thời gian trung bình trước khi một cụm chọn một nút chính mới thường là 12 giây. Giả định ở đây là cấu hình bản sao đang sử dụng cài đặt cấu hình mặc định

Một yếu tố ảnh hưởng đến thời gian bầu chọn là độ trễ của mạng, do đó ảnh hưởng đến thời gian chờ đã định cấu hình để bộ bản sao của bạn hoạt động trở lại với một nút chính mới. Trong trường hợp đó, bộ bản sao sẽ không xử lý bất kỳ thao tác ghi nào cho đến khi quá trình bầu chọn bộ chính mới hoàn tất. Tuy nhiên, các thao tác đọc vẫn được phục vụ nếu chúng được cấu hình để xử lý trên các nút phụ

Trong sơ đồ hiển thị bên dưới, quy trình chuyển đổi dự phòng tự động đã được kích hoạt sau khi nút chính gặp phải thời gian ngừng hoạt động lâu hơn thời gian chờ đã định cấu hình. Một trong các nút phụ còn lại bắt đầu và bầu chọn một nút chính mới

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Nguồn hình ảnh.

cũng đọc

MongoDB Sharding là gì. Hướng dẫn từng bước với ví dụ​

MongoDB Arbiter trong một ReplicaSet

Trong các tình huống mà các ràng buộc về chi phí ngăn cản bạn thêm nút phụ vào bộ bản sao (chẳng hạn như nút có nút chính và nút phụ), bạn có thể chọn thêm phiên bản mongodb vào bộ bản sao làm trọng tài

Trọng tài tham gia vào các cuộc bầu cử nhưng không cung cấp dự phòng như một nút phụ tiêu chuẩn sẽ làm. Trọng tài luôn là trọng tài. Nút chính có thể bước xuống và trở thành nút phụ và nút phụ có thể đảm nhận vai trò của nút chính trong cuộc bầu cử

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Nguồn hình ảnh.

cũng đọc

Cách cài đặt Docker MongoDB Container bằng MongoDB Image

Định cấu hình Bộ bản sao MongoDB

Cho đến nay, chúng tôi đã đề cập đến những kiến ​​thức cơ bản về sao chép và cách thức hoạt động của một bộ bản sao nhằm đảm bảo tính sẵn sàng cao của dữ liệu. Trong phần này, chúng tôi sang số và định cấu hình bộ bản sao 3 nút

Bản sao Đặt môi trường Lab

Để minh họa khái niệm sao chép trong MongoDB, chúng tôi sẽ sử dụng thiết lập 3 nút trên Ubuntu 20. 04 với 1 nút chính và 2 nút phụ như hình

  1. 139. 144. 171. 196        mongo-master-node
  2. 139. 144. 171. 229        mongo-node-1
  3. 139. 144. 171. 250        mongo-node-2

GHI CHÚ

Mỗi nút cần cài đặt và chạy máy chủ MongoDB. Theo mặc định, dịch vụ MongoDB sẽ lắng nghe cổng 27017. Ngoài ra, tất cả các nút cần được định cấu hình với tên máy chủ có thể phân giải được với nhau.  

Hãy xem hướng dẫn toàn diện của chúng tôi về cách cài đặt MongoDB trên Ubuntu 20. 04

Bước 1. Chỉnh sửa tập tin máy chủ

Để cho phép giao tiếp liền mạch trên tất cả các nút, bạn cần chỉnh sửa tệp /etc/hosts trong mỗi nút với địa chỉ IP và tên máy chủ tương ứng như được hiển thị trong thiết lập phòng thí nghiệm của chúng tôi. Do đó, hãy đăng nhập vào từng nút và truy cập tệp máy chủ như được hiển thị

				
					sudo nano /etc/hosts
				
			

Cập nhật tệp với các mục sau

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			

Lưu các thay đổi và thoát

Bước 2. Tạo người dùng quản trị trên Nút chính

Việc tạo một bộ bản sao yêu cầu bạn định cấu hình người dùng quản trị trên nút chính. Như vậy, hãy truy cập trình bao MongoDB như được hiển thị

				
					$ mongosh
				
			

Tiếp theo, chuyển sang cơ sở dữ liệu quản trị như được hiển thị

				
					use admin
				
			

Sử dụng chức năng sau để tạo người dùng quản trị. Khi được nhắc nhập mật khẩu, hãy cung cấp một mật khẩu mạnh và nhấn ENTER

				
					db.createUser(
  {
    user: "admin-user",
    pwd: passwordPrompt(),
    roles: [ { role: "root", db: "admin" }, "readWriteAnyDatabase" ]
 }
)
				
			

Khi bạn đã tạo người dùng quản trị, hãy thoát khỏi trình bao MongoDB

				
					exit
				
			

Bước 3. Định cấu hình nút chính

Các nút trong bộ bản sao cần giao tiếp với xác thực được bật. Thay vì sử dụng cụm mật khẩu, chúng tôi sẽ tạo chứng chỉ mật mã để bảo mật xác thực giữa các nút

Chúng tôi sẽ sử dụng lệnh openssl để tạo khóa mật mã base64. Nhưng trước tiên, chúng tôi sẽ tạo một thư mục trong đó chúng tôi sẽ đặt khóa

				
					# mkdir -p /mnt/keys/
				
			

Tiếp theo, chuyển sang người dùng root và tạo khóa mật mã base64 như sau

				
					$ sudo -su
				
			

________số 8_______

Khi bạn đã tạo khóa thành công, hãy đặt các quyền sao cho chỉ chủ sở hữu của tệp khóa mới có quyền truy cập chỉ đọc vào tệp trong khi nhóm và những người dùng còn lại không có quyền đọc hoặc ghi

				
					# chmod 400 /mnt/keys/mongo-key
				
			

Ngoài ra, hãy định cấu hình quyền sở hữu và nhóm của khóa mật mã cho người dùng và nhóm 'mongodb'

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
0

Tiếp theo, sao chép khóa đã tạo vào các nút phụ bằng lệnh scp như được hiển thị

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
1

Khi đã xong, bạn cần thực hiện một vài thay đổi đối với tệp cấu hình MongoDB mặc định trên nút chính. Vì vậy, truy cập nó như được hiển thị

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
2

Sửa file cấu hình như hình bên dưới. Tên của bộ bản sao được cung cấp là

				
					use admin
				
			
4  Đây chỉ là một giá trị tùy ý, vì vậy vui lòng chọn tên ưa thích của bạn

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
3

Lưu các thay đổi và thoát khỏi tệp. Sau đó khởi động lại MongoDB để thực hiện các thay đổi

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
4

Bước 4. Định cấu hình các nút phụ

Để định cấu hình các nút phụ để sao chép, hãy đăng nhập vào từng nút và truy cập tệp cấu hình MongoDB mặc định

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
5

Cập nhật file cấu hình như hình

Đối với nút thứ cấp-1

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
6

Lưu các thay đổi và thoát khỏi tệp cấu hình

Một lần nữa, đặt các quyền và quyền sở hữu tệp sau cho khóa đã sao chép

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
7

Sau đó khởi động lại dịch vụ MongoDB để áp dụng các thay đổi

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
8

Đối với nút phụ 2

Như với nút phụ đầu tiên, hãy cập nhật tệp cấu hình mặc định như sau

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
9

Sau khi hoàn tất, hãy lưu các thay đổi và thoát khỏi tệp cấu hình

Như trước đây, chỉ định các quyền và quyền sở hữu tệp sau

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
7

Đảm bảo khởi động lại dịch vụ MongoDB để thực thi các thay đổi đã thực hiện

				
					139.144.171.196	 mongo-master-node

139.144.171.229  mongo-node-1

139.144.171.250  mongo-node-2
				
			
8

cũng đọc

MongoDB Sharding so với phân vùng (Sự khác biệt là gì – Giải thích)

Bước 5. Tạo bộ bản sao

Tất cả các nút hiện đã được định cấu hình đầy đủ để sao chép. Trong phần này, chúng tôi khởi tạo một bộ bản sao và tạo cơ sở dữ liệu thử nghiệm với một vài bản ghi

Vì vậy, hãy đăng nhập vào trình bao MongoDB với tư cách là người dùng quản trị sử dụng quản trị viên làm cơ sở dữ liệu xác thực

				
					$ mongosh
				
			
2

Tiếp theo, khởi động bộ bản sao như được hiển thị

				
					$ mongosh
				
			
3

Bạn sẽ nhận được đầu ra sau

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Tiếp theo, thêm nút phụ đầu tiên vào bộ bản sao

				
					$ mongosh
				
			
4

Cũng như nút thứ hai

				
					$ mongosh
				
			
5

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Để xác nhận trạng thái của bộ bản sao, hãy chạy lệnh sau

				
					$ mongosh
				
			
6

Đây là một ví dụ về những gì bạn nên mong đợi

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

cũng đọc

Lý do tại sao MongoDB là sự thay thế tốt cho Memcached

Bước 6. Xác nhận sao chép trên các nút phụ

Để xác minh rằng bộ bản sao đang hoạt động, chúng tôi tạo một cơ sở dữ liệu mẫu trên nút chính và thêm một bản ghi. Sau đó, chúng tôi xác nhận xem cơ sở dữ liệu đã được sao chép sang các nút phụ hay chưa

Trên nút chính, đăng nhập với tư cách Người dùng quản trị

				
					$ mongosh
				
			
7

Tạo cơ sở dữ liệu mẫu để kiểm tra xem bộ bản sao có hoạt động không. Ở đây, chúng tôi đang tạo một cơ sở dữ liệu có tên my-database

				
					$ mongosh
				
			
8

Tiếp theo, tạo bộ sưu tập và thêm bản ghi. Ở đây, chúng tôi đang tạo một bộ sưu tập có tên là sinh viên với các chi tiết của một sinh viên

				
					$ mongosh
				
			
9

Để xác nhận sự hiện diện của cơ sở dữ liệu mới được tạo, hãy liệt kê các cơ sở dữ liệu như được hiển thị

				
					use admin
				
			
0

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Cuối cùng, đi tới bất kỳ nút phụ nào và truy cập trình bao MongoDB với tư cách là Người dùng quản trị, giống như cách bạn đã làm trên nút chính

				
					$ mongosh
				
			
7

Tiếp theo, chạy lệnh sau để kích hoạt thao tác đọc trên nút phụ

				
					use admin
				
			
2

Sau đó chuyển sang cơ sở dữ liệu thử nghiệm mà bạn đã tạo trên bản gốc và liệt kê các tài liệu trong bộ sưu tập

				
					use admin
				
			
3

Cái nào có thể được sử dụng để kiểm tra cấu hình bộ bản sao trong MongoDB?

Như bạn có thể quan sát, cơ sở dữ liệu cùng với bộ sưu tập và bản ghi của nó đã được sao chép

Đây là xác nhận rằng bản sao đang hoạt động như mong đợi. Hoàn hảo

cũng đọc

10 phương pháp bảo mật tốt nhất hàng đầu để bảo mật MongoDB

Cảm ơn bạn đã đọc Cách sao chép trong MongoDB hoạt động (Bộ bản sao). Chúng tôi sẽ kết thúc bài viết này.  

Cách sao chép trong MongoDB hoạt động (Bộ bản sao) Kết luận

Trong hướng dẫn này, chúng tôi đã đề cập đến khái niệm sao chép trong MongoDB và tiếp tục định cấu hình bộ bản sao bao gồm một nút chính và hai nút phụ. Các bộ bản sao có ích trong việc đảm bảo tính sẵn sàng cao của dữ liệu và khả năng chịu lỗi, đảm bảo rằng không có điểm lỗi nào và dữ liệu luôn có thể truy cập được

Để biết thêm thông tin về nội dung MongoDB, hãy truy cập blog của chúng tôi tại đây. Để biết thêm thông tin về Bản sao MongoDB, hãy xem

Bản sao được đặt trong MongoDB là gì?

Bộ bản sao là một nhóm các phiên bản mongod 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ụ.

Thẻ nào trong cấu hình bộ bản sao?

Có thể định cấu hình một hoặc nhiều thành viên của bộ bản sao bằng các thẻ. { " Đối với thao tác đọc, bạn có thể chỉ định bộ thẻ trong tùy chọn đọc để giúp hướng thao tác đọc tới thành viên có (các) thẻ cụ thể.

Điều nào sau đây là các tính năng của bộ bản sao?

Tính năng của bộ bản sao .
Một cụm gồm N nút
Bất kỳ một nút nào cũng có thể là nút chính
Tất cả các hoạt động ghi chuyển đến chính
chuyển đổi dự phòng tự động
Tự động phục hồi
Đồng thuận bầu cử sơ bộ

Điều nào sau đây là sử dụng sao chép trong MongoDB?

Bản sao lưu trữ nhiều bản sao dữ liệu trên nhiều máy chủ dữ liệu khác nhau, cho phép người dùng khôi phục dữ liệu bất cứ khi nào cần. MongoDB hỗ trợ sao chép với sự trợ giúp của Bộ bản sao. Các Bộ bản sao này là sự kết hợp của nhiều phiên bản MongoDB khác nhau, mỗi phiên bản có một nút chính và nhiều nút phụ