当前位置:网站首页>mongoDB的三种基础备份方法
mongoDB的三种基础备份方法
2022-06-26 19:21:00 【我要出家当道士】
目录
一、快照
使用快照进行备份是最常用的一种方法,很多企业的备份产品都是基于此(爱数、commvault等)。下面以爱数的备份原理图为例。

- 管理控制台启动备份任务。
- 控制台向各物理客户端的发送备份命令,各个客户端查找本机节点是否为 Primary(主)节点,如果不是 Primary(主)节点,该节点备份任务结束。
- Primary(主)节点所在客户端获取 MongoDB 数据目录所在的文件系统,为该文件系统创建快照卷并挂载到一个临时目录。
- 客户端传输该临时目录的数据到存储服务器。
- 客户端完成备份,上报任务备份情况到管理控制台,结束整个备份任务。
该方法的主要有点是速度快,使用方便。
缺点也比较明显:
1、副本集内所有的主机都必须保留 > 500MB 的VG卷空间。虽然只有主节点进行备份操作,但在副本集架构下所有节点都有可能成为主节点。
2、无法实现增量备份,理由很简单,其无法确定数据的变动,无法明确这个时间点的数据与上一次备份时间的的数据具体发生了哪些变化。
3、只能对mongod实例下的所有数据库进行集体备份,无法实现细粒度的数据库备份。
4、快照的数据恢复也是比较繁琐的,特别是异地恢复。
二、数据文件拷贝
这种方法也是比较简单直接的,直接将mongoDB数据目录下所有的数据拷贝出来。但有几点需要注意。
1、拷贝操作发生前需要对数据库进行加锁操作。加锁后无法对数据库进行写操作,可能会影响正常业务。拷贝完成后记得解锁。
2、恢复时需要停止mongod实例。
这种方法的缺点与快照类似。具体的操作,如下所示:
# 进入mongo shell
db.fsyncLock()
# 退回到linux shell
# 将mongo的dbpath全部拷贝到缓存目录
cp -R /var/lib/mongo/* /backup
# 进入mongo shell
db.fsyncUnlock()三、mongodump与mongorestore
这两个都是mongo集成的备份与恢复工具,功能也是十分的强大。
使用mongodump可以将数据库数据导出为二进制的bson格式的文件。并且支持collection粒度的备份。
mongorestore是配合mongodump使用的,只要是mongodump导出的数据都可以进行回复。
而且配合mongoDB副本集模式下开启的oplog功能,可以实现增量备份。
他俩的唯一缺点就是性能太低了,远不如上面两种方法。github上面有go语言实现的源码,若精力充足可以阅读并进行优化。
由于篇幅的问题(懒),具体的使用方法见下面的链接mongodump — MongoDB Manual
https://www.mongodb.com/docs/v4.4/reference/program/mongodump/
mongorestore — MongoDB Manual
https://www.mongodb.com/docs/v4.4/reference/program/mongorestore/
边栏推荐
- 問題解决:虛擬機無法複制粘貼文件
- [recommended collection] these 8 common missing value filling skills must be mastered
- Tree array
- Micro service single sign on system (SSO)
- Leetcode 238 product of arrays other than itself
- 黑客用机器学习发动攻击的九种方法
- 几种常见的UML关系图汇总
- Installation and use of filebeat
- 元宇宙链游开发案例版 NFT元宇宙链游系统开发技术分析
- 抖音实战~分享模块~复制短视频链接
猜你喜欢

限流设计及实现

威胁猎人必备的六个威胁追踪工具

Crawl Douban to read top250 and import it into SqList database (or excel table)

50 lines of code to crawl TOP500 books and import TXT documents

When does the mobile phone video roll off?

The cross compilation environment appears So link file not found problem

(几何) 凸包问题

Refresh the strong pointer assignment problem in the HP-UX system of Sanguan

Redis single sign on system + voting system

Logstash安装及使用
随机推荐
8VC Venture Cup 2017 - Final Round C. Nikita and stack
项目实战四:用户登录及token访问验证(reids+jwt)
Pinda general permission system (day 3~day 4)
Database SQL statement writing
Numpy之matplotlib
Boot指标监测
刷新三观的HP-UX系统中的强指针赋值出core问题
Solidity - 合约继承子合约包含构造函数时报错 及 一个合约调用另一合约view函数收取gas费用
Request method 'POST' not supported
Jsonutils tool class (based on Alibaba fastjson)
Boot的单元测试
Summary of several common UML diagrams
Leetcode 128 longest continuous sequence
关于Qt数据库开发的一些冷知识
关于不等式取值转义的思路
tsconfig. json
Microservice architecture
链游开发成品源码 链游系统开发详情说明
数据库SQL语句撰写
问题解决:虚拟机无法复制粘贴文件