我正在尝试重命名MondoDB副本集,如MongoDB文档中所述:
/* Set `newId` to the new replica set name */
var newId = 'idcom'
var doc = db.getSiblingDB("local").system.replset.findOne()
var oldId = doc._id
doc._id = newId
db.getSiblingDB("local").system.replset.save(doc)
db.getSiblingDB("local").system.replset.remove({_id: oldId})
然而,它不起作用,我无法恢复到以前的配置。如果我试图在Ubuntu机器上重复mongod.service的指令(从不同的端口开始,等等(,由于以下错误,它不会启动:
mongod[20493]: Unrecognized option: processManagement.replication.replSetName
systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
systemd[1]: mongod.service: Failed with result 'exit-code'.
如果我尝试通过mongod命令启动MongoDBmongod--dbpath/opt/mongodb/--port27017-replSet-idcom服务器启动,但我无法访问mongodb终端,日志不断抛出以下内容:
NETWORK [ReplicaSetMonitor-TaskExecutor] Unable to reach primary for set idcomm
关于如何恢复到以前的配置,请提供任何帮助?以前,SECONDARY是用replSetName:;comm0">
Thx!
我建议从头开始部署复制集。
- 停止所有实例
- 在维护模式下重新启动一个实例,如中所述在其他端口上将辅助设备作为独立设备重新启动
- 连接到此实例并删除
local
数据库:db.getSiblingDB('local').drop()
- 在所有其他节点上,从
dbpath
中删除所有文件(也许您可以跳过此操作,因为初始同步无论如何都会删除所有数据( - 以正常模式重新启动实例,并按照deploy a Replica Set(部署副本集(中给出的方式部署副本集,即
rs.initiate(), rs.add(), etc.