Docs 菜单

Docs 主页开发应用程序MongoDB Manual

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

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

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

重要

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

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

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

1

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

mongosh

切换到 admin 数据库并运行 shutdown

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

如果您通过命令行配置 mongod 实例,请使用 --replSet 选项为副本集设置名称。

典型的命令行调用可能包括:

用途
选项
集群名称
网络详细信息
数据路径
身份验证详情

根据您部署的设置更新示例代码。

mongod --replSet rs0 \
--port 27017 \
--dbpath /path/to/your/mongodb/dataDirectory \
--authenticationDatabase "admin" \
--username "adminUserName" \
--password

如果您使用配置文件来启动 mongodb,请将 replication 部分添加到您的配置文件中。编辑 replSetName 值,以设置副本集的名称。

replication:
replSetName: rs0

注意

Optional

您可以在 mongod.conf 配置文件中指定数据目录、副本集名称和 IP 绑定,然后使用以下命令启动 mongod

mongod --config /etc/mongod.conf
3

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

rs.initiate()

您只需启动副本集一次。

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

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

4

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

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

5

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

← 向副本集添加仲裁节点