问题描述,mongo从库添加至副本集开始stratup,然后需要修改主库,于是从原副本集remove,重新添加至新的副本集,然后出现了这样的问题,“lastHeartbeatMessage” : “replica set IDs do not match, ours: xxx; remote node’s:xxx”,如下图所示:
ID不匹配,意识到了是因为mongo从库已经启动,启动时指定了原副本集adntkcpmongo,于是关闭mongo,指定新的副本集重启,如下命令
[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.88.231.105 ~]#/usr/bin/mongod -f /etc/mongod.conf --replSet adntkcpmongo2nd
依旧同样的错误,尝试remove后在add,无果,于是进入数据目录(这里的数据目录是配置文件中自定义的),发现已有部分数据,应该是原副本集同步的部分数据,猜想应该是数据影响所致
于是执行如下步骤,首先关闭mongo,进入数据目录删除掉已经同步过来的数据,然后指定新的副本集,再次启动mongo
[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.88.231.105 data]#mongo
MongoDB shell version: 3.2.22
connecting to: test
adntkcpmongo:OTHER> use admin
switched to db admin
adntkcpmongo:OTHER> db.shutdownServer() //关闭mongo服务
[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.88.231.105 data]#pwd
/data/db/mongodb/data
[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.88.231.105 data]#rm -fr * //删除同步数据
[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.88.231.105 data]#netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3320/sshd
[root@sg_adn_tkcpmongoslaveAli_rs-47.88.231.105:47.88.231.105 data]#/usr/bin/mongod -f /etc/mongod.conf --replSet adntkcpmongo2nd //重启mongo
about to fork child process, waiting until server is ready for connections.
forked process: 24831
child process started successfully, parent exiting
不需要remove在add,同步状态恢复正常