zoukankan      html  css  js  c++  java
  • MongoDB 备份方法

    翻译自 http://docs.mongodb.org/manual/core/backups/

    有以下几种方法来备份MongoDB群集:

    • 通过复制底层数据文件来备份
    • 通过mongodump来备份
    • 通过MMS (MMS:MongoDB Management Service)云备份
    • 通过MMS On Prem 备份软件备份

     1. 通过复制底层数据文件来备份

      如果存储设备支持按时间点产生快照(snapshot),你可以用这些快照来创建mongodb的备份。比如Amazon的EBS存储系统支持EC2的快照。在Linux上LVM Manager能够产生快照。

      如果Mongodb正在运行,要得到一个正确的快照的话,MongoDB必须打开日志功能,并且日志文件和mongoDB的数据文件再同一个逻辑卷(logical volume)上。如果不打开日志(journaling)功能,则无法保证得到的快照里的数据的一致性。

      对于分片系统(sharded system), 你必须关闭balancer并且在同一时间获取每个shard和每个config server的snapshot。

      你也可以用cp, rsync或者其它工具去拷贝文件。但是拷贝多个文件不是一个原子型操作,你必须在拷贝之前停止所有写操作,否则的话可能会使拷贝的数据处于不一致的状态。

    2. mongodump

      通过拷贝底层文件不支持复集(replica set)的时点恢复(point in time recovery),并且很难去管理大型的分片群集。另外,这些拷贝很大,因为它们包含了索引以及底层的Padding和碎片。而mongodump则能生成更小的备份。

      mongodump工具从mongodb数据库中读取数据并生成bson文件。mongorestore则能够将这些数据恢复到mongodb数据库。mongodump对小型的数据库是非常有效的工具,对大型的数据库系统则不是很理想。

      mongodump和mongorestore能够在mongod进程运行的时候操作,并且能够操作底层的数据文件。

      mongodump不会备份索引文件,所以恢复数据库后需要重建index。

    用mongodump和mongorestore的具体操作详见 http://docs.mongodb.org/manual/tutorial/backup-with-mongodump/ 

  • 相关阅读:
    如何解决无法成功git commit 和git push
    orleans 项目调试注意
    silo 主机 配置
    asp.net core 项目引用包版本问题
    C# async 方法怎么被正确的消费 (新篇)
    C# 虚方法 复习
    C# dynamic 适用场景进一步说明
    [MySQL]
    C# Subject 观察者模式
    C# 协变与逆变
  • 原文地址:https://www.cnblogs.com/AllanDragoon/p/4045872.html
Copyright © 2011-2022 走看看