Hướng dẫn create mongodb deployment - tạo triển khai mongodb

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Hướng dẫn này mô tả cách tạo một bộ bản sao ba thành viên từ ba trường hợp mongod hiện có chạy với Điều khiển truy cập bị vô hiệu hóa.

Để triển khai một bộ bản sao với điều khiển truy cập được bật, hãy xem Triển khai Bộ bản sao được đặt với Xác thực Keyfile. Nếu bạn muốn triển khai một bộ bản sao từ một phiên bản MongoDB duy nhất, hãy xem Chuyển đổi độc lập thành một bộ bản sao. Để biết thêm thông tin về việc triển khai bộ bản sao, hãy xem Tài liệu Kiến trúc triển khai Sao chép và Bản sao.

Ba bộ bản sao thành viên cung cấp đủ dự phòng để tồn tại hầu hết các phân vùng mạng và các lỗi hệ thống khác. Những bộ này cũng có đủ năng lực cho nhiều hoạt động đọc phân tán. Bộ bản sao phải luôn luôn có một số thành viên lẻ. Điều này đảm bảo rằng các cuộc bầu cử sẽ tiến hành suôn sẻ. Để biết thêm về thiết kế các bộ bản sao, hãy xem tổng quan sao chép.

Để triển khai sản xuất, bạn nên duy trì sự tách biệt giữa các thành viên càng tốt bằng cách lưu trữ các trường hợp mongod trên các máy riêng biệt. Khi sử dụng các máy ảo để triển khai sản xuất, bạn nên đặt từng ví dụ mongod trên một máy chủ máy chủ riêng biệt được phục vụ bởi các mạch điện dự phòng và đường dẫn mạng dự phòng.

Trước khi bạn có thể triển khai một bộ bản sao, bạn phải cài đặt MongoDB trên mỗi hệ thống sẽ là một phần của bộ bản sao của bạn. Nếu bạn chưa cài đặt MongoDB, hãy xem các hướng dẫn cài đặt.

Trong sản xuất, triển khai từng thành viên của bản sao được đặt thành máy riêng của mình và nếu có thể liên kết với cổng MongoDB tiêu chuẩn của

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
0.

Xem bản sao đặt kiến ​​trúc triển khai để biết thêm thông tin.

Quan trọng

Để tránh các bản cập nhật cấu hình do thay đổi địa chỉ IP, hãy sử dụng tên máy chủ DNS thay vì địa chỉ IP. Điều đặc biệt quan trọng là sử dụng tên máy chủ DNS thay vì địa chỉ IP khi định cấu hình các thành viên đặt bản sao hoặc các thành viên cụm bị chia cắt.

Sử dụng tên máy chủ thay vì địa chỉ IP để định cấu hình các cụm trên đường chân trời mạng chia. Bắt đầu từ MongoDB 5.0, các nút chỉ được cấu hình với địa chỉ IP sẽ không xác thực khởi động và sẽ không bắt đầu.

Sử dụng tùy chọn

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
1 để đảm bảo MongoDB lắng nghe các kết nối từ các ứng dụng trên địa chỉ được định cấu hình.

Đã thay đổi trong phiên bản 3.6:

Cảnh báo

Các nhị phân MongoDB, mongod

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
3, liên kết với localhost theo mặc định. Nếu cài đặt tệp cấu hình
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
4 hoặc tùy chọn dòng lệnh
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
5 được đặt cho nhị phân, thì nhị phân cũng liên kết với địa chỉ IPv6 localhost. . Hành vi ràng buộc này bao gồm
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8 và các thành viên khác trong bộ bản sao của bạn hoặc cụm bị che khuất. Các máy khách từ xa không thể kết nối với các nhị phân chỉ bị ràng buộc với localhost. Để ghi đè liên kết mặc định và liên kết với các địa chỉ IP khác, sử dụng cài đặt tệp cấu hình
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
9 hoặc tùy chọn dòng lệnh
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
1 để chỉ định danh sách tên máy chủ hoặc địa chỉ IP.
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8
and other members of your replica set or sharded cluster. Remote clients cannot connect to binaries that are bound only to localhost.To override the default binding and bind to other IP addresses, use the
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
9 configuration file setting or the
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
1 command-line option to specify a list of hostnames or IP addresses.

Cảnh báo

Các nhị phân MongoDB, mongod

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
3, liên kết với localhost theo mặc định. Nếu cài đặt tệp cấu hình
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
4 hoặc tùy chọn dòng lệnh
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
5 được đặt cho nhị phân, thì nhị phân cũng liên kết với địa chỉ IPv6 localhost. . Hành vi ràng buộc này bao gồm
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8 và các thành viên khác trong bộ bản sao của bạn hoặc cụm bị che khuất. Các máy khách từ xa không thể kết nối với các nhị phân chỉ bị ràng buộc với localhost. Để ghi đè liên kết mặc định và liên kết với các địa chỉ IP khác, sử dụng cài đặt tệp cấu hình
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
9 hoặc tùy chọn dòng lệnh
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
1 để chỉ định danh sách tên máy chủ hoặc địa chỉ IP.

mongod --bind_ip localhost,My-Example-Associated-Hostname

Ví dụ: trường hợp mongod sau đây liên kết với cả Localhost và tên máy chủ

mongod --replSet "rs0" --bind_ip localhost,

2, được liên kết với địa chỉ IP

mongod --replSet "rs0" --bind_ip localhost,

3:

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

Để kết nối với trường hợp này, các máy khách từ xa phải chỉ định tên máy chủ hoặc địa chỉ IP được liên kết của nó

mongod --replSet "rs0" --bind_ip localhost,

3:

Đảm bảo rằng lưu lượng mạng có thể vượt qua an toàn giữa tất cả các thành viên của bộ và tất cả các máy khách trong mạng.

  • Xem xét những điều sau:

  • Thiết lập một mạng riêng ảo. Đảm bảo rằng cấu trúc liên kết mạng của bạn định tuyến tất cả lưu lượng giữa các thành viên trong một trang web trên mạng khu vực địa phương.

  • Định cấu hình kiểm soát truy cập để ngăn các kết nối từ các máy khách không xác định đến bộ bản sao.

Định cấu hình các quy tắc kết nối mạng và tường lửa để các gói đến và đi chỉ được phép trên cổng MongoDB mặc định và chỉ từ trong triển khai của bạn. Xem các cân nhắc ràng buộc IP.

Đảm bảo rằng mỗi thành viên của một bộ bản sao có thể truy cập bằng cách giải quyết DNS hoặc tên máy chủ. Bạn nên định cấu hình tên DNS của mình một cách thích hợp hoặc thiết lập tệp

mongod --replSet "rs0" --bind_ip localhost,

5 của hệ thống để phản ánh cấu hình này.

Mỗi thành viên phải có thể kết nối với mọi thành viên khác. Để biết hướng dẫn về cách kiểm tra kết nối của bạn, hãy xem kết nối kiểm tra giữa tất cả các thành viên.

Tạo thư mục nơi MongoDB lưu trữ các tệp dữ liệu trước khi triển khai MongoDB.

Chỉ định cấu hình mongod trong tệp cấu hình được lưu trữ trong

mongod --replSet "rs0" --bind_ip localhost,

7 hoặc một vị trí liên quan.

Để biết thêm thông tin về các tùy chọn cấu hình, hãy xem Tùy chọn tệp cấu hình.

Đối với mỗi thành viên, hãy bắt đầu một phiên bản mongod với các cài đặt sau:

  • Đặt tùy chọn

    mongod --replSet "rs0" --bind_ip localhost,

    9 thành tên đặt bản sao. Nếu ứng dụng của bạn kết nối với nhiều hơn một bộ bản sao, mỗi bộ phải có một tên riêng biệt.

  • Đặt tùy chọn

    mongosh --host My-Example-Associated-Hostname
    mongosh --host 198.51.100.1
    9 thành tên máy chủ/IP hoặc danh sách các tên máy chủ/IP được phân tách bằng dấu phẩy.

  • Đặt bất kỳ cài đặt nào khác khi thích hợp cho việc triển khai của bạn.

Trong hướng dẫn này, ba trường hợp mongod được liên kết với các máy chủ sau:

Bản sao đặt thành viên

Tên máy chủ

Thành viên 0

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>
2

Thành viên 1

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>
3

Thành viên 2

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>
4

Ví dụ sau đây chỉ định tên bộ bản sao và liên kết IP thông qua các tùy chọn dòng lệnh

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>
5 và
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
1:

Cảnh báo

mongod --replSet "rs0" --bind_ip localhost,

Đối với

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>
7, chỉ định (các) tên máy chủ và/hoặc địa chỉ IP cho phiên bản mongod của bạn rằng các máy khách từ xa (bao gồm các thành viên khác của bộ bản sao) có thể sử dụng để kết nối với phiên bản.

Ngoài ra, bạn cũng có thể chỉ định

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>
9 và

mongod --config

0 trong tệp cấu hình:

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>

Để bắt đầu mongod với tệp cấu hình, chỉ định đường dẫn của tệp cấu hình với tùy chọn

mongod --config

2:

mongod --config

Trong triển khai sản xuất, bạn có thể định cấu hình tập lệnh init để quản lý quá trình này. Các tập lệnh init nằm ngoài phạm vi của tài liệu này.

Từ cùng một máy nơi một trong những mongod đang chạy (trong hướng dẫn này,

replication:
replSetName: "rs0"
net:
bindIp: localhost, address(es)>
2), bắt đầu
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8. Để kết nối với mongod nghe localhost trên cổng mặc định của
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
0, chỉ cần phát hành:
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8
. To connect to the mongod listening to localhost on the default port of
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
0, simply issue:

Tùy thuộc vào đường dẫn của bạn, bạn có thể cần chỉ định đường dẫn đến nhị phân

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8.
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8
binary.

Nếu mongod của bạn không chạy trên cổng mặc định, hãy chỉ định tùy chọn

rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "mongodb0.example.net:27017" },
{ _id: 1, host: "mongodb1.example.net:27017" },
{ _id: 2, host: "mongodb2.example.net:27017" }
]
})
0 cho
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8.
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "mongodb0.example.net:27017" },
{ _id: 1, host: "mongodb1.example.net:27017" },
{ _id: 2, host: "mongodb2.example.net:27017" }
]
})
0
option for
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8.

Từ

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8, chạy
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "mongodb0.example.net:27017" },
{ _id: 1, host: "mongodb1.example.net:27017" },
{ _id: 2, host: "mongodb2.example.net:27017" }
]
})
3 trên bản sao đặt thành viên 0.
mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1
8
, run
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "mongodb0.example.net:27017" },
{ _id: 1, host: "mongodb1.example.net:27017" },
{ _id: 2, host: "mongodb2.example.net:27017" }
]
})
3 on replica set member 0.

Quan trọng

Quan trọng

Để tránh các bản cập nhật cấu hình do thay đổi địa chỉ IP, hãy sử dụng tên máy chủ DNS thay vì địa chỉ IP. Điều đặc biệt quan trọng là sử dụng tên máy chủ DNS thay vì địa chỉ IP khi định cấu hình các thành viên đặt bản sao hoặc các thành viên cụm bị chia cắt.

Sử dụng tên máy chủ thay vì địa chỉ IP để định cấu hình các cụm trên đường chân trời mạng chia. Bắt đầu từ MongoDB 5.0, các nút chỉ được cấu hình với địa chỉ IP sẽ không xác thực khởi động và sẽ không bắt đầu.

rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "mongodb0.example.net:27017" },
{ _id: 1, host: "mongodb1.example.net:27017" },
{ _id: 2, host: "mongodb2.example.net:27017" }
]
})

MongoDB bắt đầu một bộ bản sao, sử dụng cấu hình bộ bản sao mặc định.

Sử dụng

rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "mongodb0.example.net:27017" },
{ _id: 1, host: "mongodb1.example.net:27017" },
{ _id: 2, host: "mongodb2.example.net:27017" }
]
})
4 để hiển thị đối tượng cấu hình SET bản sao:

Đối tượng Cấu hình SET bản sao giống như sau:

{
"_id" : "rs0",
"version" : 1,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "mongodb0.example.net:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"secondaryDelaySecs" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "mongodb1.example.net:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"secondaryDelaySecs" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "mongodb2.example.net:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"secondaryDelaySecs" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("585ab9df685f726db2c6a840")
}
}

Sử dụng

rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "mongodb0.example.net:27017" },
{ _id: 1, host: "mongodb1.example.net:27017" },
{ _id: 2, host: "mongodb2.example.net:27017" }
]
})
5 để xác định chính trong bộ bản sao.

Mẹo

Xem thêm: