我正在使用 MongoDB 开展一个项目,因此要求我的服务器经理安装 MongoDB。
我最近在一个旧的 stackoverflow 线程上读到,实际上不建议在单个服务器上运行 MongoDB,因为可能会丢失数据。我不是真正的专家,想避免这种情况。这些问题是否仍然存在,我应该寻找其他解决方案,如远程数据库还是安装它是否安全?
我应该确保我的托管服务器提供商处理哪些陷阱?
我正在使用 MongoDB 开展一个项目,因此要求我的服务器经理安装 MongoDB。
我最近在一个旧的 stackoverflow 线程上读到,实际上不建议在单个服务器上运行 MongoDB,因为可能会丢失数据。我不是真正的专家,想避免这种情况。这些问题是否仍然存在,我应该寻找其他解决方案,如远程数据库还是安装它是否安全?
我应该确保我的托管服务器提供商处理哪些陷阱?
警告 - chridam 链接到的文章已经过时了。
简单地说,不,MongoDB 的单服务器部署不再需要担心了。默认情况下,MongoDB 将每 100 毫秒将所有内容写入日志。如果有带有j
(journal) 选项的写入,则该间隔将缩短到三分之一。不久前,我发布了一个更长的答案,其中包含了一个类似问题的详细信息(实际上是两个)。
关键是写入操作j : true
在写入日志之前不会返回(即,预计这些调用平均需要 16 毫秒+),这正是人们所期望的行为,这也是大多数其他 dbs 的行为方式.
您应该确保您正在使用日志写入关注 ( j : true
) 并且日志没有被禁用。此外,由于默认值取决于服务器版本,并且有许多新功能、错误修复和性能改进,因此请确保您获得的是最新版本的 MongoDB(如果服务器运行类似 debian stable 的东西可能不是这种情况)。