ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mongodb数据备份与恢复

2022-02-20 13:01:59  阅读:282  来源: 互联网

标签:-- mongodb 备份 数据备份 数据库 articledb 恢复 目录


前言

为确保数据安全性,mongodb数据备份在实际生产环境下必不可少,一旦生产环境下的mongo所在服务器出现诸如掉电、宕机、甚至是一些不可预测的灾难情况,数据备份就显得尤为重要了,又备份,就有数据恢复

下面就通过实际的案例操作,演示下如何基于mongodb复制集做数据的备份与恢复操作

环境准备

1、提前搭建好mongodb的复制集群

关于环境搭建,可以参考我的另一篇,有详细的搭建步骤 使用mongoshake同步mongo数据
在这里插入图片描述

2、在复制集下创建一个数据库

并给数据库下随机插入一些测试用的数据,本例使用article这个库,在这个库下创建了一个comment的集合,并给该集合随机插入了几条测试数据

在这里插入图片描述

mongodb 数据备份操作

数据备份的命令语法

mongodump -h dbhost -d dbname -o dbdirectory
  • -h :MongoDB 所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
  • -d:需要备份的数据库实例,例如:test
  • -o:备份的数据存放位置,例如:/usr/local/dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个dump目录,这个目录里面存放该数据库实例的备份数据

1、全量备份到默认bin目录

这种备份方式会对当前mongodb所有数据库进行备份,如果数据量较大,建议考虑使用一台单独的服务器用于存储这些数据

进入mongodb的bin目录,执行下面的备份命令,使用oplog的方式进行全量备份

./mongodump --host IP:27017 --oplog

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

备份成功后,默认会在当前目录下生成一个dump的文件夹,里面存储了当前所有的mongo中数据库的数据

2、全量备份到指定目录

上面是备份到默认的bin目录下,下面演示下备份到指定的文件目录,执行下面的命令

./mongodump --host 172.17.0.2:27017 -o /usr/local/soft/mongo/backdump

在这里插入图片描述

这时候到backdump目录下,检查是否完成备份
在这里插入图片描述

3、备份指定的数据库到默认bin目录

备份articledb数据到当前bin目录下,执行下面的命令

./mongodump -d articledb --host 172.17.0.2:27017 -o ./

在这里插入图片描述

4、备份指定的数据库到指定目录

备份articledb数据到指定目录下,执行下面的命令

./mongodump -d articledb --host 172.17.0.2:27017 -o /usr/local/soft/mongo/backdump

在这里插入图片描述
在这里插入图片描述

mongodb 数据恢复操作

实验准备,登录mongodb复制集群的primary节点,删除articledb这个数据库,切换到articledb库,执行下面的删除命令

db.dropDatabase()

在这里插入图片描述

1、基于bin目录下的dump文件恢复

进入bin目录,执行如下命令进行恢复

./mongorestore --host 172.17.0.2:27017 --oplogReplay

在这里插入图片描述

执行成功后,切换到shell窗口,看看articledb数据库数据是否恢复
在这里插入图片描述

1、基于指定目录下的指定数据库dump文件恢复

当然,如果备份的是某个具体的数据库的话,可以只恢复特定的数据,先删除articledb
在这里插入图片描述
再执行下面的命令进行恢复

./mongorestore --host 172.17.0.2:27017 -d articledb /usr/local/soft/mongo/backdump/articledb 

在这里插入图片描述

然后检查数据库articledb数据是否恢复,可以看到,数据已经正常恢复

在这里插入图片描述

以上就是本篇的全部内容,实际生产环境中,可能情况略有不同,比如生产环境不是复制集而是分片集,再比如数据恢复的时候并不想全量恢复,而是只恢复某个时间点之后的数据,有兴趣的同学可以进一步深入探究

标签:--,mongodb,备份,数据备份,数据库,articledb,恢复,目录
来源: https://blog.csdn.net/zhangcongyi420/article/details/123028348

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有