前言

数据库的备份非常重要

备份方式

使用Mongodb自带的运维管理工具(Ops Manager)

需要单独部署,比较麻烦和复杂

通过文件系统快照

Linux需要LVM支持
需要开启journal日志
journal日志和数据文件需要在同一个逻辑卷

通过使用cp或者rsync类似命令复制数据目录

复制前需要服务停止写,否则可能会造成文件数据不一致
复制所有的目录或者文件会造成空间的浪费
do not support point in time recovery for replica sets
不适合大分片集群

通过mongodump命令备份

连接mongodb实例读取数据,然后生成BSON文件,然后通过mongorestore恢复数据
对小系统简单高效,不适合大系统的备份和恢复
仅备份文档数据,恢复数据时需要重建索引
备份大数据量时,可能会造成page faults,影响服务性能
默认情况下不备份本地数据库local
备份过程中,数据可能会修改,可以加上--oplog选项,恢复时加上--oplogReplay选项

mongodump命令

用途

备份数据

用法

mongodump options --out path || --archive=filename

常用选项

--host <hostname><:port>, -h <hostname><:port>

连接主机地址

--port <port>

连接端口

--username <username>, -u <username>

登录用户名

--password <password>, -p <password>

登录密码

--authenticationDatabase <dbname>

授权数据库,有指定导出db,则设置为导出db,默认为admin

--db <database>, -d <database>

指定备份的db,未指定导出所有

--collection <collection>, -c <collection>

指定备份的集合,未指定导出所有

--query <json>, -q <json>

导出过滤,未设置导出所有

--gzip

压缩导出数据

--out <path>, -o <path>

导出保存路径

--archive <file or null>

导出数据保存为archive打包文件,导出目录和导出打包文件只能二选一,--archive=打包文件名

--oplog

导出oplog日志,对mongos无效,只对有生成oplog的节点生效

--excludeCollection string

指定哪些集合不备份,有多个则选项使用多次即可

--excludeCollectionsWithPrefix string

根据集合前缀排除不备份的集合,有多个则选项使用多次即可

mongorestore命令

用途

还原数据 跟mongodump搭配使用

用法

mongorestore options <path>
mongorestore options --archive=filepath

常用选项

--host <hostname><:port>, -h <hostname><:port>

连接主机地址

--port <port>

连接端口

--username <username>, -u <username>

授权用户名

--password <password>, -p <password>

授权用户密码

--authenticationDatabase <dbname>

授权数据库

--db <database>, -d <database>

指定导入数据库

--collection <collection>, -c <collection>

指定导入集合

--drop

恢复前删除已存在的集合

--oplogReplay

导入后执行oplog,保证数据的一致性

--gzip

备份文件是否压缩

--archive <=file|null>

导出的是打包文件,指定打包文件路径 --archive=filepath

实践

备份数据

mongodump --host 127.0.0.1 --port 27025 -u root -p root --gzip --archive=mongodb_backup_2017-11-29.tar.gz

恢复数据

mongorestore --host 127.0.0.1 --port 27025 -u root -p root --gzip --nsExclude config* --archive=mongodb_backup_2017-11-29.tar.gz

备注

1. 使用mongorestore命令还原shards集群时需要过滤掉config数据库
2. 不同类型集群备份需要注意的事项和步骤有差异,详情看相关的操作步骤文档
3. 备份方式优先选择顺序 系统快照 > 数据目录备份 > Mongodb工具
4. 可以考虑专门使用一从实例用于备份使用

参考资料

【1】mongodb备份方式
https://docs.mongodb.com/manual/core/backups/

【2】文件系统快照备份和恢复
https://docs.mongodb.com/manual/tutorial/backup-with-filesystem-snapshots/

【3】mongodb命令工具进行备份
https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/

【4】mongodump备份命令
https://docs.mongodb.com/manual/reference/program/mongodump/

【5】mongorestore恢复命令
https://docs.mongodb.com/manual/reference/program/mongorestore/

【6】副本集集群备份和恢复步骤
https://docs.mongodb.com/manual/tutorial/restore-replica-set-from-backup/

【7】分片集群备份和恢复
https://docs.mongodb.com/manual/administration/backup-sharded-clusters/

【8】单个实例恢复
https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/

【9】Mongodb运维工具
https://docs.opsmanager.mongodb.com/current/application/

mongodb之备份的更多相关文章

  1. Mongodb数据备份恢复

    Mongodb数据备份恢复 一.MongoDB数据库导入导出操作 1.导出数据库 twangback为备份的文件夹 命令: mongodump -h 127.0.0.1[服务器IP] -d advie ...

  2. mongodb 定时备份

    通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操作: 1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod ...

  3. mongodb数据库备份迁移 windows -> linux

    mongodb数据库备份迁移 windows -> linux cd 到本机mongodb的安装目录 如: C:\Program Files\MongoDB\Server\3.4\bin 可以发 ...

  4. MongoDB数据库备份与还原、单表的导入导出

    -------------------MongoDB备份与恢复------------------- 1.MongoDB数据库备份     1.语法:         mongodump -h dbh ...

  5. docker安装mongodb并备份

    安装 官方镜像地址: https://hub.docker.com/_/mongo?tab=description 可以查看对应的dockerfile, 通过观察docker-entrypoint.s ...

  6. MongoDb进阶实践之九 Mongodb的备份与还原

    一.引言 前几天写了MongoDB数据库的聚合.一说到“聚合”,用过关系型数据库的人都应该知道它是一个什么东西,主要是用于对数据分类汇总和统计.大家都知道,做为DBA还有另一个重要的任务,那就是对数据 ...

  7. MongoDB操作-备份和恢复,导入和导出

    mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport 1. 常用命令格式 mongod ...

  8. mongodb数据库备份恢复-windows系统

    备份语法: mongodump命令脚本语法如下: >mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服务器地址,例如:127.0 ...

  9. PCB MongoDB数据库 备份与还原

    一. MongoDB数据库 备份与还原工具介绍: 数据备份工具  mongodump.exe 数据还原工具   mongorestore.exe 二. MongoDB数据库备份 mongodump - ...

  10. Mongodb自动备份数据库并删除指定天数前的备份

    1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod_bak/mongod_bak_now mkdir -p /home/backup/mongod_bak/ ...

随机推荐

  1. P2251 质量检测(ST表)

    P2251 质量检测 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... ...

  2. [Swift通天遁地]五、高级扩展-(1)快速检测设备属性:版本、类型、屏幕尺寸

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. 关于网页的自适应问题一---Media Query(媒介查询)

    1.Media Query(媒介查询) 通过不同的媒介类型和条件定义样式表规则.媒介查询让CSS可以更精确作用于不同的媒介类型和同一媒介的不同条件.媒介查询的大部分媒介特性都接受min和max用于表达 ...

  4. curl怎么模拟登录进行采集

    前几天公司需要模拟登录,从网上找了一下代码,结合谷歌浏览器,进行模拟账号密码进行登录 用谷歌浏览器进行抓包操作,获得登录用参数, 下面上干货: <?php /** * 主要获取登录成功的cook ...

  5. OFDM同步算法之Schmidl算法

    Schmidl算法代码 算法原理 训练序列结构 T=[A A],其中A表示复伪随机序列PN,进行N/2点ifft变换得到的符号序列 \[M(d)=\frac{\left | P(d) \right | ...

  6. 从如何停掉 Promise 链说起

    在使用Promise处理一些复杂逻辑的过程中,我们有时候会想要在发生某种错误后就停止执行Promise链后面所有的代码. 然而Promise本身并没有提供这样的功能,一个操作,要么成功,要么失败,要么 ...

  7. Java—break跳出语句

    在开发代码时,常常会产生这样的疑惑:break跳出语句是如何应用的呢? 使用break的场景有两种:一.switch语句中.二.循环语句. 这里就不介绍switch语句,主要说一下break在循环中的 ...

  8. cms中某些标题链接的单独写法

    href="{$CATEGORYS[45][url]}" 链接写法, {$CATEGORYS[45][catname]} 标题写法 在show页面中 src="{$thu ...

  9. 使用Hexo搭建个人博客配置全过程

    大致过程分为: 1.搭建Node.js 环境 2. 搭建Git 环境 3.安装配置Hexo 4.GitHub 注册和配置 5. 关联Hexo 与 GitHub Pages 7.Hexo的常用操作 下面 ...

  10. 清瘦的记录者: 一个比dbutils更小巧、好用的的持久化工具

    https://gitee.com/bitprince/memory 1. 概述 1.1 连接.语句和结果集 从JDBC的规范上看,其对数据访问层有相当简洁的抽象:1.连接(connection) 2 ...