mongodb数据备份与恢复
2022/2/20 19:35:15
本文主要是介绍mongodb数据备份与恢复,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
为确保数据安全性,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数据备份与恢复的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南