Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

将独立运行的自管理 mongod 转换为副本集

独立运行的 mongod 实例对于测试和开发非常有用。独立运行实例不是生产部署的良好选择,因为它可能出现单点故障。副本集也称为集群 ,提供冗余和可用性。始终在生产中使用副本集。

如果您有一台独立服务器,并且其中包含要在生产中使用的数据,请先将该独立服务器转换为副本集。

重要

如果将开发服务器转换为副本集供生产使用,那么在向互联网公开集群之前,请先查阅安全检查清单

您可以轻松地从独立运行服务器迁移到 MongoDB Atlas集群。 MongoDB Atlas是针对云中MongoDB部署的完全托管服务。 要学习;了解更多信息,请参阅MongoDB Atlas文档中的迁移或导入数据

在转换独立实例之前,请考虑是副本集还是分片集群更适合于您的工作负载。

分片集群是一种特殊的集群。分片集群提供冗余性和可用性;它还可以跨分片分发数据。分片通常托管在多个服务器上,并允许水平扩展。

要对副本集使用授权,您还必须将副本集节点配置为使用 X.509 证书或密钥文件来执行内部身份验证。

有关更多信息,请参阅:

1

使用 mongosh 连接到您的 mongod 实例。

mongosh

切换到 admin 数据库并运行 shutdown

use admin
db.adminCommand(
{
shutdown: 1,
comment: "Convert to cluster"
}
)
2

更新每台服务器上的配置文件并设置 replSetName 选项。

replication:
replSetName: "rs0"
3

为副本集中的每个服务器配置节点身份验证。

配置副本集以使用 X.509 证书进行内部节点身份验证。

设置
选项
说明
设置要在身份验证中使用的 TLS模式。要将服务器配置为要求 X.509 证书身份验证,请将此选项设置为 requireTLS
设置包含客户端连接 TLS 证书的 .pem 文件路径。
设置包含证书颁发机构 (CA) 根证书链的文件路径。
设置包含集群节点连接的 TLS 证书的 .pem 文件的路径。
设置用于验证集群节点的模式。要使用 X.509 身份验证,请将此选项设置为 x509

例如:

replication:
replSetName: "rs0"
security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mongodb/client.pem
CAFile: /etc/mongodb/ca.pem
clusterFile: /etc/mongodb/member.pem

配置副本集以使用密钥文件进行内部节点身份验证。要进行身份验证,每个节点都必须拥有相同密钥文件的副本。

设置
选项
说明
设置副本集密钥文件的路径。

例如:

replication:
replSetName: "rs0"
security:
keyFile: /etc/mongodb/keyfile

在未经授权的情况下配置副本集。

警告

此配置只能用于无法通过网络访问的内部副本集。

设置
选项
说明
设置 MongoDB 侦听客户端连接的主机名或IP地址。要阻止对服务器的网络访问,请将此选项设置为 localhost

例如:

replication:
replSetName: "rs0"
net:
bindIp: localhost
4

为每个节点启动mongod

5

要初始化副本集,请使用 mongosh 重新连接到服务器实例。然后运行 rs.initiate()

rs.initiate()

您只需启动副本集一次。

要查看副本集配置,请使用rs.conf()

要查看副本集的状态,请使用 rs.status()

6

新副本集有一个主节点。下一步是向副本集添加新节点。在添加其他节点之前,请查看有关集群的文档:

当您准备好添加节点时,请使用 rs.add()

7

将 mongod 转换为副本集后,将应用程序使用的连接字符串更新为副本集的连接字符串。然后,重新启动您的应用程序。

后退

副本集(Replica Set)