Mongodb实现定时备份与恢复的方法教程

发布时间 - 2026-01-11 02:04:18    点击率:

本文主要介绍了关于Mongodb实现定时备份与恢复的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

MongoDB 数据备份

在 MongoDB 中我们使用 mongodump 命令来备份 MongoDB 数据

语法如下:

> mongodump -h dbhost -d dbname -o dbdirectory -u user -p password
  • -h MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
  • -d 需要备份的数据库实例,例如:test
  • -o 备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
  • -u -p 如果有设置用户和密码,需要设置对应的用户名和密码,否则没有权限

MongoDB 数据恢复

mongodb 使用 mongorestore 命令来恢复备份的数据

>mongorestore -h <hostname><:port> -d dbname <path>

  1、--host <:port>, -h <:port>:MongoDB所在服务器地址,默认为: localhost:27017

  2、--db , -d :需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

  3、--drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

  4、<path>:

最后的一个参数,设置备份数据所在位置,例如:c:datadumptest。

你不能同时指定 <path> 和 --dir 选项,--dir也可以设置备份目录。

  5、--dir:指定备份的目录

你不能同时指定 <path> 和 --dir 选项。

定时备份 mongodb

环境

操作系统: Centos 7

一、 备份 shell 脚本 (/home/crontab/mongobk.sh)

#!/bin/sh
# dump 命令执行路径,根据mongodb安装路径而定
DUMP=/usr/bin/mongodump
# 临时备份路径
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now
# 压缩后的备份存放路径
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list
# 当前系统时间
DATE=`date +%Y-%m-%d`
# 数据库账号
DB_USER=user
# 数据库密码
DB_PASS=password
# 代表删除7天前的备份,即只保留近 7 天的备份
DAYS=7
# 最终保存的数据库备份文件
TAR_BAK="mongod_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d dbname -o $OUT_DIR/$DATE
# 压缩格式为 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除 15 天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

exit

二、创建对应的备份目录

mkdir -p /home/backup/mongodb_bak/mongodb_bak_now
mkdir -p /home/backup/mongodb_bak/mongodb_bak_list

三、修改文件属性,使其可执行

chmod +x MongoDB_bak.sh

四、添加到计划任务

cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start

/sbin/service crond stop

/sbin/service crond restart

/sbin/service crond reload

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可

查看当前用户的crontab,输入 crontab -l

编辑crontab,输入 crontab -e

删除crontab,输入 crontab -r

1 进入编辑界面

crontab -e

2 添加任务

30 18 * * * /home/crontab/mongobk.sh

基本格式 :

        *  command

分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用或者 /1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

3 保存后对出,启动欺负

service crond start

4 设置开机自启动

chkconfig crond on

参考资源

  • centos(7.0) 上 crontab 计划任务
  • MongoDB的备份(mongodump)与恢复(mongorestore)
  • MongoDB 备份(mongodump)与恢复(mongorestore)
  • Centos7:利用crontab定时执行任务
  • Linux下MongoDB自动备份
  • mongodb 中文文档

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# mongodb  # 定时备份脚本  # mongodb备份与恢复  # 定时备份  # MongoDB的备份与恢复  # mongoDB4.2.8备份恢复与导出导入(推荐)  # 分布式文档存储数据库之MongoDB备份与恢复的实践详解  # 使用centos系统中的crontab命令对mongodb定时备份恢复  # MongoDB 导出导入备份恢复数据详解及实例  # MongoDB使用自带的命令行工具进行备份和恢复的教程  # Windows或Linux系统中备份和恢复MongoDB数据的教程  # Mongodb数据库的备份与恢复操作实例  # MongoDB整库备份与还原以及单个collection备份、恢复方法  # MongoDB的备份(mongodump)与恢复(mongorestore)  # 自动启动  # 备份文件  # 相关内容  # 可以用  # 设为  # 要把  # 使其  # 分别为  # 这篇文章  # 谢谢大家  # 但它  # 建立一个  # 重启  # 而定  # 每分钟  # 没有权限  # 可执行  # 数据恢复  # 星期天  # 数据备份 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站图片在线制作软件,怎么在图片上做链接?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel如何使用Gate和Policy进行授权?(权限控制)  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel如何使用Telescope进行调试?(安装和使用教程)  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何安全更换建站之星模板并保留数据?  C语言设计一个闪闪的圣诞树  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  青岛网站建设如何选择本地服务器?  b2c电商网站制作流程,b2c水平综合的电商平台?  Bootstrap CSS布局之列表  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  Laravel怎么使用Intervention Image库处理图片上传和缩放  jquery插件bootstrapValidator表单验证详解  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  文字头像制作网站推荐软件,醒图能自动配文字吗?  油猴 教程,油猴搜脚本为什么会网页无法显示?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  js实现点击每个li节点,都弹出其文本值及修改  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  ,怎么在广州志愿者网站注册?  Laravel distinct去重查询_Laravel Eloquent去重方法  黑客入侵网站服务器的常见手法有哪些?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  如何在橙子建站中快速调整背景颜色?  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  网站制作报价单模板图片,小松挖机官方网站报价?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  如何快速重置建站主机并恢复默认配置?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel如何发送系统通知?(Notification渠道示例)  JS经典正则表达式笔试题汇总  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  微信小程序 闭包写法详细介绍  iOS验证手机号的正则表达式