首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修正RetryableWrites通过部署更新而不是显式传递的选项?

修正RetryableWrites通过部署更新而不是显式传递的选项?
EN

Stack Overflow用户
提问于 2019-12-16 19:09:06
回答 1查看 1.1K关注 0票数 0

This MongoDB deployment does not support retryable writes的最佳解决方案是什么?是否有我应该使用的版本/设置(例如,找到从MMAPv1切换到WiredTiger的方法),还是retryWrites=false的显式设置更新确实是heroku部署的最佳解决方案?

背景

在过去几周的某个时间点上,我的Heroku配置的mLab add on (已经顺利运行了大约一年)开始尝试任何写操作:

Exception: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string.

我没有对部署或驱动程序做任何更改,所以我假设这个新的异常与mlab端的更新与我自己的设置不兼容有关。

在诸如:如何修复蒙古族的retryWrites?这样的讨论中,我遇到了解决问题的有效方法。修复需要将一个retryWrites=false选项传递给MongoClient,但在我看来,虽然我可以绕过错误,但我的MongoDB部署中不受支持的特性的问题并没有真正得到解决。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-17 01:47:50

可还原写入是官方驱动程序中的默认启用,官方驱动程序已经更新为MongoDB 4.2。

所有现代版本的MongoDB服务器(我包括MongoDB 3.6+,因为3.4将于下个月结束)默认情况下还包括可还原的写支持。

错误消息指示您有一个旧的服务器部署或配置,它不支持可还原写入。

要解决这一问题,您的选择是:

  • 使用MongoDB 3.6+将服务器和存储引擎升级到WiredTiger。您还需要副本集部署(可以是用于开发/测试的单个成员副本集)。
  • retryWrites=false添加到驱动程序连接字符串中。
  • 降级为较旧的驱动程序版本(例如,具有4.0兼容性)。

我建议升级您的MongoDB部署,特别是如果您仍然使用不推荐的MMAPv1存储引擎或EOL服务器版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59362889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档