1. 为何备份
* 备份的目的:
* 防止硬件故障引起的数据丢失
* 防止人为错误误删数据
* 时间回溯
* 监管要求
2. MongoDB的备份
* MongoDB的备份机制氛围:
* 延迟节点备份
* 全量备份 + Oplog 增量
* 最常见的全量备份方式包括:
* mongodump;
* 复制数据文件;
* 文件系统快照;
3. 方案一:延迟节点备份
4. 方案二:全量备份加oplog
5. 复制文件全量备份注意事项
* 复制数据库文件:
* 必须先关闭节点才能复制,否则复制到的文件无效;
* 也可以选择db.fsyncLock()锁定节点,但完成后不要忘记db.fsyncUnlock()解锁;
* 可以且应该在节点上完成;
* 该方法实际上会暂时宕机一个从节点,所以整个过程中应注意投票节点总数。
* 文件系统快照:
* MongoDB支持使用文件系统快照直接获取数据文件在某一时刻的镜像;
* 快照过程中可以不用停机;
* 数据文件和Journal必须在同一个卷上;
* 快照完成后请尽快复制文件并删除快照;
* Mongodump全量备份注意事项
* 使用mongodump备份最灵活,但速度上也是最慢的;
* mongodump出来的数据不能表示某个时间点,只是某个时间段
* 用幂等性解决一致性问题