我已按照官方文档将独立 mongodb 实例(本地 ubuntu 机器)转换为副本集。我们使用 --replset 标志重新启动 mongod 的部分似乎会引发错误。
使用命令:
sudo systemctl stop mongod
sudo mongod --port 27017 --dbpath /var/lib/mongodb --replSet rs1 --bind_ip localhost
{"t":{"$date":"2023-11-24T17:58:28.002+05:30"},"s":"W", "c":"QUERY", "id":23799, "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [local.oplog.rs] not found."},"stats":{},"cmd":{"aggregate":"oplog.rs","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"local"}}}
cmd 进入循环,一次又一次地打印此消息,直到我强制关闭程序。
我尝试重新安装mongodb,看看是否是随机问题。但它仍然占上风。
尝试了 mongod restart 命令的多种变体。使用不同的关机程序。
我在尝试连接 Compass 时遇到了同样的问题。
但是我能够在服务器的 shell 上运行
mongosh
,然后从那里运行 rs.initiate()
。
一旦
rs.initiate()
完成,我就可以使用 Compass 连接到复制集中的所有节点并验证复制是否正常工作。