MongoDB在Windows系统和Linux系统中实现自动定时备份

在这里插入图片描述

本文主要介绍MongoDB在Windows系统和Linux系统中如何实现自动定时备份。

目录

  • MongoDB在Windows系统中实现自动定时备份
  • MongoDB在Linux系统中实现自动定时备份
    • 备份步骤
    • 备份恢复

MongoDB在Windows系统中实现自动定时备份

要在Windows系统中实现自动定时备份MongoDB数据库,可以使用Windows任务计划程序和MongoDB自带的mongodump工具。
下面是MongoDB在Windows系统中实现自动定时备份的操作步骤:

  1. 创建备份目录。在计算机上创建一个用于存储备份文件的目录。例如,在D盘根目录下创建一个文件夹,命名为“mongodb_backup”。

  2. 创建备份脚本。使用文本编辑器(如Notepad++)创建一个批处理文件,命名为“backup.bat”。在备份脚本中输入以下代码:

    @echo off
    SET date=%date:~0,4%%date:~5,2%%date:~8,2%
    SET time=%time:~0,2%%time:~3,2%%time:~6,2%
    SET datetime=%date%_%time%
    mongodump -h 127.0.0.1:27017 -d dbName -o "D:/mongodb_backup/%datetime%"
    
  3. 设置定时任务。使用Windows系统的任务计划程序,创建一个新的任务来定时运行备份脚本。在任务计划程序中创建一个基本任务,并设置以下属性:

  • 在“触发器”选项卡中,选择要运行备份脚本的日期和时间。

  • 在“操作”选项卡中,将操作设置为“启动程序”,并输入备份脚本的路径和名称。

  • 在“条件”选项卡中,根据需要设置其他选项,例如仅在计算机处于活动状态时运行任务等。

  1. 测试备份是否成功。手动运行备份脚本,检查备份文件是否被正确创建。如果备份文件正确生成,则说明备份已经成功,可以删除手动创建的备份文件。

这样就完成了MongoDB在Windows系统中实现自动定时备份的操作步骤。需要注意的是,备份脚本中的“dbName”需要替换为实际要备份的数据库名称。另外需要定期清理备份文件,以避免备份文件过多占用磁盘空间。

MongoDB在Linux系统中实现自动定时备份

备份步骤

下面是在Linux系统中使用crontab实现MongoDB自动定时备份的步骤:

  1. 创建一个备份脚本

首先,创建一个备份脚本,这个脚本将用来执行实际的备份操作。可以使用mongodump命令进行备份。以下是一个简单的备份脚本,名为mongobackup.sh:

#!/bin/sh
#mongoDB目录
PATH=/root/mongodb/bin:/sbin:/bin:/usr/sbin:/usr/bin
#设置备份目录
OUT_DIR=/data/backup/mongod_bak/mongod_bak_now #临时备份目录
TAR_DIR=/data/backup/mongod_bak/mongod_bak_list #备份存放路径
DATE=`date +%Y_%m_%d` #获取当前系统时间
DB_HOST=127.0.0.1:27017 #数据库地址和端口号
DB_USER=username #数据库账号
DB_PASS=password #数据库密码
DB_NAME='-d dbName' #备份的数据库名称,-d 不能删除
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
TAR_BAK="mongod_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
cd $OUT_DIR #进入此目录
rm -rf $OUT_DIR/* #删除临时目录
mkdir -p $OUT_DIR/$DATE #创建目录
mongodump $DB_NAME -h=$DB_HOST -u=$DB_USER -p=$DB_PASS -o $OUT_DIR/$DATE/ #备份全部数据库
cd $OUT_DIR #进入此目录
tar -zcvf $TAR_DIR/$TAR_BAK $DATE #压缩为.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete #删除7天前的备份文件

上述代码的功能是执行MongoDB的备份命令,将备份文件夹自动打包成.tar.gz文件格式,并且可指定保留N天内的备份文件,过期自动删除。mongodump命令用于备份MongoDB数据库,-h选项指定MongoDB服务器的主机地址,-o选项指定备份文件的输出目录。

  1. 给备份脚本授予执行权限

使用chmod命令为备份脚本赋予执行权限:

chmod +x mongobackup.sh
  1. 添加crontab任务

使用crontab命令添加自动备份任务。例如,以下命令将在每天凌晨2点执行备份操作:

crontab -e

在打开的文件中添加以下内容:

0 2 * * * /path/to/mongobackup.sh

这将在每天凌晨2点运行备份脚本,备份文件将保存在指定的目录中。

  1. 验证备份是否成功

可以手动运行备份脚本来验证备份是否成功,并检查备份文件是否正确生成。如果备份文件已经生成,则说明自动备份任务已经成功设置。

使用上述步骤,可以在Linux系统中实现MongoDB自动定时备份,并且可以通过修改crontab任务的配置,来更改备份的时间间隔。

备份恢复

执行以下备份恢复命令即可恢复备份。

mongorestore -d dbName -u=username -p=password --drop /data/backup/mongod_bak/mongod_bak_now/2023_12_12/dbName

这段代码的具体功能如下:

  • mongorestore:表示使用MongoDB自带的恢复工具mongorestore。

  • -d dbName:表示将备份数据恢复到名为dbName的数据库中。

  • -u=username -p=password:表示用于连接MongoDB数据库的用户名和密码。

  • –drop:表示在恢复数据之前删除目标数据库中的所有文档,避免出现冲突。

  • /data/backup/mongod_bak/mongod_bak_now/2023_12_12/dbName:表示备份数据所在的文件夹路径,即要恢复的备份文件所在的路径和备份时使用的数据库名称。

这段代码的作用是将指定路径下的MongoDB备份文件恢复到指定的数据库RV中,并在恢复前删除RV中的所有文档。用户名和密码用于连接MongoDB数据库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/267672.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

王小二切饼(递归练习)

题目名字 王小二切饼 题目链接 题意 要切饼,每一刀都要切的使这个饼分的最多 思路 先列举一下第1,2,3,4…刀最多能切多少块 首先要确保每新切的一刀都与原来的所有刀有交点,这样就能分出最大块数然后找出规律因为第…

酷开科技多维度赋能营销,实力斩获三项大奖

在数智化新阶段、广告新生态、传播新业态的背景下,“第30届中国国际广告节广告主盛典暨网易传媒态度营销峰会”于11月18日在厦门国际会展中心盛大举行。来自全国的品牌方、战略决策者、媒体平台和品牌服务机构等汇聚一堂。在50000+现场观众和数千万线上观…

MySQL InnoDB Replication部署方案与实践

1. 概述 MySQL Innodb ReplicaSet 是 MySQL 团队在 2020 年推出的一款产品,用来帮助用户快速部署和管理主从复制,在数据库层仍然使用的是主从复制技术。 ReplicaSet 主要包含三个组件:MySQL Router、MySQL Server 以及 MySQL Shell 高级客户…

HeartBeat监控Redis状态

目录 一、概述 二、 安装部署 三、配置 四、启动服务 五、查看数据 一、概述 使用heartbeat可以实现在kibana界面对redis服务存活状态进行观察,如有必要,也可在服务宕机后立即向相关人员发送邮件通知 二、 安装部署 参照文章:HeartBeat监…

web服务器之——搭建两个基于不同端口访问的网站

要求如下: 建立一个使用web服务器默认端口的网站,设置DocumentRoot为/www/port/80,网页内容为:the port is 80。建立一个使用10000端口的网站,设置DocumentRoot为/www/port/10000,网页内容为:t…

总结6种@Transactional注解的失效场景

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 引言 昨天有粉丝咨询了…

Appium微信小程序自动化环境准备

一、前置说明 微信从8.0.19开始内核从x5换成xweb之后,原先的开启webview调试的原方案已经会报503错误。 点击下面的链接,都会报503错误: http://debugmm.qq.com/?forcex5ture http://debugx5.qq.com 微信内核升级为xweb之后,需要…

k8s详细教程(一)

—————————————————————————————————————————————— 博主介绍:Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 🍅文末获取源码…

基于单片机的定时插座在智能家居中的应用

近年来,随着科学技术的发展迅速,人们对智能化的要求越来越高。越来越多的智能化产品进入千家万户,如电脑电视、扫地机器人、智能空气净化器等。这些家居电器和电子产品大都需要连接电源,为满足多种用电器的正常使用,延…

@Transactional失效问题

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 关于Transactional 日…

数据结构基础介绍

一.起源及重要性 1968 年,美国的高德纳 Donakl E . Kn uth 教授在其所写的《 计算机程序艺术》第一卷《基本算法 》 中,较系统地阐述了数据的逻辑结构和存储结构及其操作, 开创了数据结构的课程体系 ,数据结构作为一门独立的…