我想从MySQL切换到MongoDB,但巨大的数据丢失(超过1小时)对我来说是不可接受的.

我需要3个备份计划:

  1. Hourly backup plan.数据每X分钟刷新一次到磁盘,如果服务器出现问题,我将确保在重启后,至少一个小时前,它将拥有所有数据.我可以配置它吗?

  2. Daily backup plan.数据每天都同步到备份磁盘,所以即使服务器爆炸,我也可以在几个小时内恢复昨天的数据.我应该使用fsync、主从还是其他什么?我希望流量最小,所以理想情况下只发送更改.

  3. Weekly backup plan.数据被同步到第二个备份磁盘,所以如果服务器和第一个备份磁盘都爆炸,我至少有上周的数据.这是可靠性的问题,所以通过网络发送所有数据是可以的.

我该怎么做?

推荐答案

  1. fsync command将数据刷新到磁盘.默认情况下,每60秒执行一次,但可以使用--syncdelay命令行参数进行配置.

  2. 对于每日和每周备份,documentation on backups有一些很好的建议.对于日常备份,master-slave configuration似乎是最好的 Select ,因为它只会同步更改.

  3. 对于每周备份,您还可以使用主从配置或复制.另一个选项是mongodump utility,它将备份整个数据库.它能够在数据库运行时创建备份,因此您可以在主数据库或其中一个从属数据库上运行它.您还可以在备份从属服务器之前将其删除.

Mongodb相关问答推荐

MongoDB:如何从数组中的所有对象中删除属性?

MongoDB 将 JSON 字符串转换为数组[{obj1},{obj2}]的实际对象

使用名为 Object 键的 uuid 创建 mongodb 文档

更新文档中的数组时,如何在 MongoDB 和 C# 中使用 $push 更新修饰符

MongoError:$subtract 累加​​器是一元运算符

查找对象是否在预保存钩子mongoose中更改

如何构建我只需要打开一次 mongodb 连接的快速应用程序?

MongoDB插入引发重复键错误

`fields cannot be identical'和''` mongoimport错误

在 mongodb 中查找字段的所有非不同值

NoSQL:MongoDB 或 BigTable 并不总是 Available意味着什么

单个模式数组中的多个模式引用 - mongoose

MongoDB count() 未定义

Python Django-REST-framework 和 Angularjs 的文件夹 struct

是否有支持 MongoDB 和 Devise 的 Rails 管理界面?

MongoError: The dollar ($) prefixed field '$push' in '$push' is not valid for storage

如何使用 mongoose 连接到 mongoDB Atlas

停止副本集 MongoDB

AsQueryable 方法是否在新的 Mongodb C# 驱动程序 2.0rc 中离开?

如何使用 Spring 的 MongoTemplate 和 Query 类检索字段子集?