更新时间:2022-08-12 11:26:34
1、如果你需要将恢复后的副本集数据转化为单机部署模式,关闭单节点副本集服务,在配置文件里注释掉副本集信息(YAML 格式参数为 replSetName,INI 格式参数为 replSet,具体请参考 MongoDB 官方文档),修改完配置文件后重启服务。注意,副本集单节点更容易拓展成集群,不推荐将单节点副本集转化成单机模式。
2、如果你需要恢复后的单节点副本集拓展为副本集集群, 那么请你阅读 对 MongoDB 副本集进行集群重建。
3、如果你觉得副本集应对风险的能力还是在你的预期之外,你需要数据库具备更强的故障恢复功能,那么建议你将恢复出来的副本集拓展成分片集群。
首先,配置一个 config 副本集,具体请参考 MongoDB 官方文档。
然后,关闭单节点副本集节点服务,在配置文件里加上分片集群shard集群信息(YAML格式 clusterRole 配置为 shardsvr,INI 格式 shardsvr 配置为 true,具体请参考MongoDB官方文档)后重启 MongoDB 数据库,再拓展为 shard 集群。此处建议至少再添加一个 shard 集群用来均衡数据存储。
最后,配置 mongos 节点,连接 config 并控制 shard 副本集。如果拓展为了两个以上 shard 集群,建议通过 mongos 节点打开数据均衡器,将数据均匀的分布到每个分片集群上。具体操作请参考 MongoDB 官方文档。
4、如果你希望重建的副本集集群成为现有分片集群的 shard 副本集,可以通过 mongos 节点控制恢复出来的副本集集群。
首先,你需要关闭副本集节点服务,在配置文件里加上分片集群 shard 集群信息(YAML格式 clusterRole配置为 shardsvr,INI 格式 shardsvr 配置为 true,具体请参考 MongoDB 官方文档)后重启 MongoDB 数据库。
然后,在 mongos 节点用 rs.addShard() 命令将该 shard 集群加入到分片集群。