将独立运行的自管理 mongod 转换为副本集
独立 mongod
实例对于测试和开发非常有用。独立运行实例不是生产部署的良好选择,因为它可能出现单点故障。副本集(也称为集群)提供冗余和可用性。始终在生产中使用副本集。
如果您有一台独立服务器,并且其中包含要在生产中使用的数据,请先将该独立服务器转换为副本集。
重要
如果将开发服务器转换为副本集供生产使用,那么在向互联网公开集群之前,请先查阅安全检查清单。
开始之前
在转换独立实例之前,请考虑是副本集还是分片集群更适合于您的工作负载。
分片集群是一种特殊的集群。分片集群提供冗余性和可用性;它还可以跨分片分发数据。分片通常托管在多个服务器上,并允许水平扩展。
步骤
1
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
3
初始化副本集。
要初始化副本集,请使用 mongosh
重新连接到服务器实例。然后运行 rs.initiate()
。
rs.initiate()
您只需启动副本集一次。
要查看副本集配置,请使用rs.conf()
。
要查看副本集的状态,请使用 rs.status()
。
5
更新应用程序连接字符串。
将 mongod 转换为副本集后,将应用程序使用的连接字符串更新为副本集的连接字符串。然后,重新启动您的应用程序。