【问题标题】:MongoDB transactions clarificationMongoDB事务澄清
【发布时间】:2020-05-27 21:06:53
【问题描述】:

所以从 4.0 版本开始,MongoDB 支持多文档事务,我找不到答案的一件事是以下。如果我在同一台服务器上有一个由 PRIMARY 和 SECONDARY 实例组成的副本集,如果在事务运行时服务器或 MongoDB 实例上发生意外关闭会发生什么(例如服务器在中间关闭交易)?关闭后和我再次启动 MongoDB 实例后,数据会发生什么?我已经尝试在事务中间复制这个,我的代码执行一个终端脚本来停止两个 mongodb 服务,但我觉得有更好的方法来复制这个场景。我从这个测试中得到的结果是不确定的。提前致谢 !!!

【问题讨论】:

  • 你的结果是什么?
  • 您好,欢迎来到 StackOverflow!请编辑您的问题,以便您获得合适的答案。阅读有关如何ask a questionhow to create a reproducible example 的文档谢谢!
  • 今天我再次进行了测试。实际上过期并不代表我想要的场景,我很清楚,在执行终端脚本以在事务中间停止两个 mongodb 服务后,MongoDB 在终止其进程之前以状态码 0 干净地退出。事务被停止并且从未提交。所以这是另一个问题。如何从节点 js 强制关闭 mongoDB? (我用的是猫鼬)
  • 你可以kill -9服务器进程获取不干净的关机。

标签: mongodb transactions nosql mongodb-replica-set


【解决方案1】:

如果服务器进程在正在进行事务时死亡,则当进程再次启动时,它应该通过这些事务并中止它们。作为这些事务的一部分写入的任何数据都将被丢弃。

【讨论】:

    猜你喜欢
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 2014-03-29
    • 2014-06-17
    相关资源
    最近更新 更多