七叶笔记 » 数据库 » mongodb增量/全量备份脚本的实现详解

mongodb增量/全量备份脚本的实现详解

3. 编辑config.properties,修改oss、mongodb连接等配置信息

4. 将start.py加入linux定时任务。crontab任务配置如 0 4 * * * python /xxx/start.py >> /xxx/xxx.log 2>&1

增量时恢复步骤:

1. 创建mongodb 具有applyOps权限的角色 以及用此角色的用户。(需有执行 mongorestore --oplogReplay的用户权限)

2. 修改 restore_inc.py里的配置

3. 导入期间停止mongodb写入

4. 执行 restore_inc.py

全量时恢复步骤:

1. 修改 restore_full.py里的配置

2. 执行 restore_full.py

相关:

增量备份实现原理

一个周期内(如一星期)先备份一次全量数据库,然后后面每次备份 上次记录点到最新时间内的oplog文件。 Oplog 记录了MongoDB数据库的更改操作信息,其保存在local库的oplog.rs表,在集群架构才存在,单机不会有,故增量备份不能在单机下使用。从库是通过异步复制主库的Oplog文件,从而达到与主库的同步。 oplog有大小限制,超过指定大小,新的记录会覆盖旧的操作记录。

全量脚本执行时的流程

备份mongodb数据库到本地

进行压缩

上传到oss

检验oss与本地文件的大小是否相同

删除本地备份文件

增量脚本执行时的流程

读取上一个周期执行信息判断是否需要创建新的周期 获得mongodb上oplog最近记录的时间点current timestamp position 从本地读取上一次执行时mongodb的oplog时间点 dump导出全量数据或增量oplog文件到本地,增量oplog文件的导出范围是 上次oplog记录点到最新时间内的oplog文件 保存步骤2获取的current timestamp position到本地,作为下一次执行步骤3中的时间点 进行压缩 上传到oss 删除本地备份文件

恢复时脚本执行的流程

从oss上下载指定周期的备份文件到本地 对全量文件和增量oplog的zip文件进行解压 用 mongorestore对全量文件进行导入 用 mongorestore --oplogReplay 分别对各时间段的oplog文件进行导入

mongodb增量备份 脚本源码地址:

https://gitee.com/passer/mongodb_backup_script

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对七叶笔记的支持。

相关文章