我升级了MongodDB分片群集,其中包含两个3.2到3.4的副本集。当前的存储引擎是MMAPv1。成功将所有secondary,primary,config服务器和mongos升级到3.4后,当我使用以下命令运行config server时。
sudo mongod --configsvr
我一直在关注错误。
SHARDING [shard registry reload]定期重新加载shard注册表失败::由:: 115引起无法从配置服务器获取更新的分片列表,因为当前存储引擎不支持多数readConcerns;将在30年后重试
而且我也无法将mongos与配置服务器连接起来。当我尝试使用以下命令连接它时
sudo mongos --configdb [ip-of-my-config-server]:27019
它给了我以下错误。
BadValue:configdb仅支持副本集连接字符串
我认为由于配置服务器上的多数readConcerns错误,mongos无法连接到配置服务器。
MongoDB手册说 "从副本集配置服务器读取时,MongoDB 3.4使用的读取关注级别为"多数"。"
并使用"多数",WiredTiger must be used as storage engine.
的阅读关注度所以我似乎必须切换到WiredTiger存储引擎才能使其正常工作。但是当我打算转换到辅助副本集成员的WiredTiger存储引擎时,根据手册
"This procedure completely removes a secondary replica set member’s data"
所以我被困了一半。情况是
问题是:
答案 0 :(得分:0)
您可以迁移副本集as if it was a standalone中的每个节点,方法是使用mongodump备份数据,使用WiredTiger和空白数据目录重新启动,然后使用mongorestore填充新数据库。
这通常不建议用于副本集节点,但这只是因为它更容易擦除辅助节点上的数据并让它从其他节点重新同步。这样做可以很好地工作,但是使用转储和恢复工具可以为你做一些繁琐的工作。