MongoDB có hỗ trợ phân cụm không?

Ở đây chúng tôi trình bày cách thiết lập cụm MongoDB. Trong bài trước chúng tôi đã hướng dẫn cách cài đặt nó trên một máy

Có ba phần để cài đặt

  1. máy chủ cấu hình
  2. bộ định tuyến truy vấn
  3. máy chủ shard, tôi. e. , cơ sở dữ liệu

Nhìn vào sơ đồ bên dưới, quá trình mongos chạy như một bộ định tuyến, nghĩa là nó cho khách hàng biết nơi tìm kiếm dữ liệu. Dữ liệu được trải rộng trên cụm dựa trên chia sẻ. Sharding là việc gán các bản ghi cho các máy chủ dựa trên giá trị băm của một số chỉ mục. Máy chủ cấu hình giữ thông tin cấu hình

MongoDB có hỗ trợ phân cụm không?

(Bài viết này là một phần của Hướng dẫn MongoDB của chúng tôi. Sử dụng menu bên phải để điều hướng. )

Cài đặt MongoDB

Về mặt kỹ thuật, để tạo một MongoDB thành một cụm chỉ có nghĩa là ba lớp của kiến ​​trúc MongoDB dưới dạng các quy trình riêng biệt. Bạn có thể làm điều này cho mục đích học tập trên một máy. Nhưng ở đây chúng tôi sử dụng hai

Chúng tôi sẽ cài đặt bộ định tuyến và máy chủ cấu hình trên 172. 31. 46. 15 và máy chủ shard trên 172. 31. 47. 43. Để đơn giản, hãy gọi máy chủ đầu tiên là máy chủ cấu hình và máy chủ thứ hai là máy chủ cơ sở dữ liệu

Không sử dụng apt-get để cài đặt MongoDB vì đó không phải là phiên bản hiện tại, thường. Thay vào đó hãy làm theo các bước dưới đây. Lưu ý rằng điều này cài đặt mongod (máy chủ cấu hình và shard), mongos (bộ định tuyến) và máy khách mongo dưới dạng ba gói riêng biệt

Mở cổng tường lửa 27017, 27018 và 27019 giữa hai máy chủ

Bạn cần cả ba gói trên máy chủ cấu hình nhưng chỉ mongodb-org-server trên máy chủ cơ sở dữ liệu. Trên Ubuntu, cài đặt chúng như thế này

wget https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-server_4.0.5_amd64.deb
sudo dpkg -i mongodb-org-server_4.0.5_amd64.deb
wget https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-shell_4.0.5_amd64.deb
sudo dpkg -i mongodb-org-shell_4.0.5_amd64.deb
wget https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-mongos_4.0.5_amd64.deb
sudo dpkg -i mongodb-org-mongos_4.0.5_amd64.deb

Lưu ý nếu làm lộn xộn bước nào thì remove server rồi xóa thư viện file data /var/lib/mongodb. Nếu bạn không xóa các tệp dữ liệu khi cài đặt lại phần mềm, nó sẽ giữ cấu hình trước đó và do đó khôi phục mọi lỗi bạn đã mắc phải

Cấu hình máy chủ

Đăng nhập vào máy chủ cấu hình

Để thiết lập cả ba máy chủ, chúng tôi sẽ lặp lại 4 bước tương tự trên mỗi máy chủ

  1. Chỉnh sửa tập tin cấu hình
  2. bắt đầu quá trình
  3. Kiểm tra nhật ký lỗi
  4. Đăng nhập vào shell để cấu hình thêm

Bây giờ, trên máy chủ cấu hình, hãy chỉnh sửa tệp cấu hình. Lưu ý để đơn giản, chúng tôi tạo cho mỗi tệp cấu hình có một tên mô tả

sudo vim /etc/mongodConfig.conf

Dán vào văn bản dưới đây. Đầu tiên, chúng tôi giải thích một số lĩnh vực

path: /var/log/mongodb/mongodConfig.log
Đối với mỗi quy trình, chúng tôi đặt tên cho nhật ký để làm rõ quy trình đó dành cho quy trình nào.
port: 27019
bindIp: 172.31.46.15
Theo mặc định, máy chủ cấu hình sẽ chạy trên cổng 2019 trong cấu hình cụm. Chúng tôi làm rõ điều đó ở đây để không cần phải nhớ rằng. Ngoài ra, địa chỉ IP là địa chỉ không lặp lại. Đó là để các máy chủ khác có thể tìm thấy máy chủ này.
sharding:
clusterRole: configsvr
Sharding có nghĩa là phân phối dữ liệu theo một số lược đồ băm. Ở đây chúng tôi nói với MongoDB rằng máy chủ này là máy chủ cấu hình, trái ngược với máy chủ chia sẻ.
replication:
replSetName: ConfigReplSet
Điều này có nghĩa là sao chép dữ liệu cấu hình này. Chúng tôi sử dụng rs. () có chức năng thêm các bản sao khác. Chúng ta có thể sử dụng bất kỳ tên nào

Dán văn bản này vào /etc/mongodConfig. conf

storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongodConfig.log
net:
port: 27019
bindIp: 172.31.46.15
sharding:
clusterRole: configsvr
replication:
replSetName: ConfigReplSet

bắt đầu quá trình

sudo mongod --config /etc/mongodConfig.conf&

Kiểm tra nhật ký để tìm lỗi

________số 8

Đăng nhập vào vỏ

mongo 172.31.46.15:27019

Bật sao chép với rs. bắt đầu() và kiểm tra trạng thái với rs. trạng thái(). Lưu ý rằng đã chọn tên của bộ sao chép mà chúng tôi đã định cấu hình trong tệp cấu hình, ConfigReplSet

sudo vim /etc/mongodConfig.conf
0

Cấu hình bộ định tuyến truy vấn

Đăng nhập vào máy chủ cấu hình.
Chỉnh sửa tệp cấu hình.

sudo vim /etc/mongodConfig.conf
1

Dán vào văn bản dưới đây. Lưu ý

sudo vim /etc/mongodConfig.conf
2Điều này cho bộ định tuyến truy vấn biết nơi tìm máy chủ cấu hình và bộ bản sao của chúng.
sudo vim /etc/mongodConfig.conf
3

Bắt đầu dịch vụ. Lưu ý s trong mongos. Đây là quá trình bộ định tuyến truy vấn

sudo vim /etc/mongodConfig.conf
4

Kiểm tra nhật ký và tìm lỗi

sudo vim /etc/mongodConfig.conf
5

Định cấu hình phân đoạn

Đăng nhập vào máy chủ cơ sở dữ liệu

sudo vim /etc/mongodConfig.conf
6

Dán vào văn bản dưới đây. Thông báo rằng

sudo vim /etc/mongodConfig.conf
7Có nghĩa đây sẽ là máy chủ phân đoạn, trái ngược với máy chủ cấu hình.
sudo vim /etc/mongodConfig.conf
8Điều này có nghĩa là sao chép dữ liệu. Trong máy chủ cấu hình, chúng tôi đã yêu cầu nó sao chép cấu hình.
sudo vim /etc/mongodConfig.conf
9Theo mặc định, máy chủ shard chạy trên cổng 27018. Vì vậy, chúng tôi làm rõ điều đó để chúng tôi không phải nhớ điều đó.
path: /var/log/mongodb/mongodConfig.log
0

bắt đầu quá trình

path: /var/log/mongodb/mongodConfig.log
1

Kiểm tra nhật ký để tìm lỗi

path: /var/log/mongodb/mongodConfig.log
2

Đăng nhập vào vỏ

path: /var/log/mongodb/mongodConfig.log
3

Bật sao chép với rs. started() và sau đó kiểm tra trạng thái bằng rs. trạng thái(). Lưu ý tên ShardReplSet. Chúng tôi có thể sử dụng bất kỳ tên nào miễn là chúng tôi sử dụng cùng một tên trên tất cả các phân đoạn trong cụm

path: /var/log/mongodb/mongodConfig.log
4

Thêm phân đoạn vào cụm

Quay lại máy chủ cấu hình và kết nối với bộ định tuyến

sudo vim /etc/mongodConfig.conf
5

Dán tất cả các lệnh sau vào trình bao

path: /var/log/mongodb/mongodConfig.log
6

Tạo một cơ sở dữ liệu có tên sách sau đó kích hoạt sharding

path: /var/log/mongodb/mongodConfig.log
7

Tạo một bộ sưu tập

path: /var/log/mongodb/mongodConfig.log
8

Tạo một chỉ mục. Chúng tôi sẽ lập chỉ mục trường isbn theo thứ tự giảm dần

path: /var/log/mongodb/mongodConfig.log
9

Thêm một bản ghi

port: 27019
bindIp: 172.31.46.15
0

Bật sharding cho bộ sưu tập

port: 27019
bindIp: 172.31.46.15
1

Bây giờ hãy xác minh rằng dữ liệu được phân phối trên toàn cụm như hình bên dưới. Tất nhiên chúng tôi chỉ có một máy chủ cơ sở dữ liệu, vì vậy nó chỉ hiển thị một. Trong một bài đăng trên blog khác, chúng tôi sẽ chỉ cho bạn cách thêm nhiều máy chủ hơn

Làm cách nào để tạo một cụm trong MongoDB?

Để tạo cụm, bạn cần có tài khoản MongoDB Atlas. .
Bấm vào nút “Tạo”
Chọn loại cụm của bạn (chuyên dụng, không có máy chủ, dùng chung)
Chọn nhà cung cấp đám mây và khu vực của bạn
Nhấp vào “Tạo cụm. ”

Cụm MongoDB có miễn phí không?

Bạn có thể đã biết rằng MongoDB Atlas là MongoDB dưới dạng dịch vụ trên đám mây công cộng do bạn chọn nhưng bạn có biết chúng tôi cũng cung cấp một cụm miễn phí mãi mãi? In this Quick Start, we'll show you why you should get one and how to create one.

MongoDB có chỉ mục cụm không?

Bắt đầu từ MongoDB 5. 3, bạn có thể tạo bộ sưu tập có chỉ mục được nhóm . Các bộ sưu tập được tạo bằng chỉ mục nhóm được gọi là các bộ sưu tập được nhóm.

Tôi có thể có bao nhiêu cụm trong MongoDB?

Trong MongoDB, bạn có thể có hai loại cụm khác nhau cho cơ sở dữ liệu. nó có thể là bộ bản sao hoặc sharding.