【发布时间】:2021-06-12 04:17:11
【问题描述】:
我在 AWS 上运行 MongoDB 副本集(3 个服务器)。我每 6 小时拍摄一次卷的快照。
由于某些软件包更改,我需要退出 Amazon Linux 1 并迁移到 Ubuntu Linux。我已经关闭了旧的 cloudformation 堆栈,使用 Ubuntu 创建了一个新的 cloudformation 堆栈,现在一切都是空白的。
现在,我拍摄我的快照,创建一个卷,删除当前在 EC2 上的卷,使用旧数据附加新卷,运行 sudo chown -R mongodb:mongodb /data 和 sudo chmod -R go+w /data,然后重新启动 Mongodb sudo systemctl restart mongod
这确实开始了,但是在 mongo 日志中,我遇到了这个问题:
"msg":"最大重试次数后心跳失败","attr":{"target":"db2.ospreynrglive.com:27017","maxHeartbeatRetries":2,"error":{"code":93 ,"codeName":"InvalidReplicaSetConfig","errmsg":"副本集 ID 不匹配,我们的:604d72257a07ddd82163de70;远程节点的:604e566ee4290c91c30c91c3ff6504"}}}
我该如何解决这个问题?我尝试编辑 local.system.replset 但这不起作用。尝试在 rs 初始化中指定 replicaSetId 失败,而且 rs.reconfig 也不会让我更改它。
我知道我可以执行 mongodump 和 mongorestore,但是当有大量数据时这会非常慢。我不能使用来自 AWS 的数据/卷/备份/快照吗?如果 AWS 上的所有 3 台服务器同时出现故障,会发生什么情况?我也会遇到同样的情况!
【问题讨论】:
-
启动第一个 mongod 作为单个节点(使用该数据)(而不是作为 RS)。当它运行时,执行“rs.initiate()”。然后逐个节点 rs.add()。
标签: mongodb mongodb-replica-set