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
设置.pem文件的路径,该文件包含用于客户端连接的 TLS 证书。
设置包含证书颁发机构 (CA) 根证书链的文件的路径。
设置.pem文件的路径,该文件包含用于集群成员连接的 TLS 证书。
设置用于对集群成员进行身份验证的模式。要使用 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)