1. 先删除旧的文档db.remove({});
2. 从副本集中移除待清理的成员:
(1) 登录副本集中的 Primary 服务器(/opt/mongo1/bin/mongo --port 27017)
(2) rs.remove("192.168.1.54:27019")
3. 关闭待清理的 mongodb 服务器
(1) 登录待清理的 mongodb 服务器(/opt/mongo2/bin/mongo --port 27018)
(2) user admin; db.shutdownServer();
4. 修改 mongodb 启动参数,并运行
bin/mongod --dbpath /home/mongodata2/data --port 27018 --logpath=/home/mongodata2/logs/mongodb2.log --repair --repairpath /opt/data
5. 确认 mongod 运行结束
可以用 ps axu | grep mongod 查看进程是否结束。
也可以看日志文件 /home/mongodata2/logs/mongodb2.log 是否有如下输出:
2016-05-10T13:14:41.646+0800 [conn5413] dbexit: shutdown called
2016-05-10T13:14:41.646+0800 [conn5413] shutdown: going to close listening sockets...
2016-05-10T13:14:41.646+0800 [conn5413] closing listening socket: 8
2016-05-10T13:14:41.646+0800 [conn5413] closing listening socket: 10
2016-05-10T13:14:41.646+0800 [conn5413] removing socket file: /tmp/mongodb-27018.sock
2016-05-10T13:14:41.646+0800 [conn5413] shutdown: going to flush diaglog...
2016-05-10T13:14:41.646+0800 [conn5413] shutdown: going to close sockets...
2016-05-10T13:14:41.646+0800 [conn5413] shutdown: waiting for fs preallocator...
2016-05-10T13:14:41.646+0800 [conn5413] shutdown: lock for final commit...
2016-05-10T13:14:41.646+0800 [conn5413] shutdown: final commit...
2016-05-10T13:14:41.647+0800 [conn5413] shutdown: closing all files...
2016-05-10T13:14:41.832+0800 [conn5413] closeAllFiles() finished
2016-05-10T13:14:41.832+0800 [conn5413] journalCleanup...
2016-05-10T13:14:41.832+0800 [conn5413] removeJournalFiles
2016-05-10T13:14:41.889+0800 [conn5413] shutdown: removing fs lock...
2016-05-10T13:14:41.889+0800 [conn5413] dbexit: really exiting now
6. 最后以正常方式启动 mongod,并将成员加入到副本集中
登录副本集中的 Primary 服务器
rs.add("IPADDR:27018")
查看副本集的运行结果: rs.printSlaveReplicationInfo()