在阿里云服务器上配置自动备份 MongoDB 数据库的操作

简介: 我是吃了没有提前备份数据的亏,因为一次误操作,删除了所有数据。阿里云的ECS服务器控制台有定时与自动化任务-自动备份数据服务,不免费。那么就自己动手来吧。

我是吃了没有提前备份数据的亏,因为一次误操作,删除了所有数据。阿里云的ECS服务器控制台有定时与自动化任务-自动备份数据服务,不免费。那么就自己动手来吧。
如果你是考虑数据的安全性,那么在备份数据后,还需要上传到OSS,或其他可以存储的地方。

一、安装 mongodb-org-tools

这个软件包包含了 MongoDB 备份所需的命令,如 mongodump 和 mongorestore。

sudo yum install mongodb-org-tools

如果遇到在 CentOS 上,无法找到 mongodb-org-tools 软件包的问题

No match for argument: mongodb-org-tools Error: Unable to find a match: mongodb-org-tools

创建一个新的仓库文件 /etc/yum.repos.d/mongodb-org.repo,并将以下内容粘贴到文件中:

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

我使用的是 MongoDB 4.4.6 版本。如果你需要其他版本,请在 baseurl 和 gpgkey 中替换相应的版本号。

清除缓存并安装 mongodb-org-tools:

sudo yum clean all
sudo yum install mongodb-org-tools

二、创建一个备份脚本 backup_mongodb.sh

输入以下命令,在 /usr/local/bin 目录下创建备份脚本并使用 nano 编辑器打开:

sudo nano /usr/local/bin/backup_mongodb.sh

将以下内容粘贴到打开的编辑器中(请替换 、、 和 为实际值):

#!/bin/bash

# MongoDB 凭证
MONGODB_USER="<MONGODB_USER>"
MONGODB_PASSWORD="<MONGODB_PASSWORD>"
MONGODB_DATABASE="<MONGODB_DATABASE>"

# Backup 目录(我的目录:/var/backups/mongodb,请根据你的实际情况设置)
BACKUP_DIR="<BACKUP_DIR>"

# 如果不存在,创建备份目录
mkdir -p ${
   BACKUP_DIR}

# 获取当前日期和时间
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")

# Backup 文件名
BACKUP_FILE="${BACKUP_DIR}/mongodb_backup_${TIMESTAMP}.gz"

# 运行mongodump命令来备份MongoDB
mongodump --username={
   mathJaxContainer[1]}{
   MONGODB_PASSWORD} --db={
   mathJaxContainer[2]}{
   BACKUP_FILE}

echo "MongoDB backup created at ${BACKUP_FILE}"

# 删除超过7天的备份文件
find ${
   BACKUP_DIR} -type f -mtime +7 -name "mongodb_backup_*.gz" -exec rm {
   } \; 

echo "Deleted backups older than 7 days"

保存文件并退出编辑器。在 nano 编辑器中,按 Ctrl + X(^X),然后按 Y,然后按 Enter。
为脚本设置可执行权限:

sudo chmod +x /usr/local/bin/backup_mongodb.sh

现在,你可以在任何地方通过运行 backup_mongodb.sh 命令来手动执行该备份脚本。
三、配置定时任务
如果你需要定期自动备份,使用 crontab 配置定时任务以定期运行备份脚本。

运行以下命令:

crontab -e

在打开的编辑器中,添加以下行以每天凌晨 1 点运行备份脚本(确保替换 /path/to/backup_mongodb.sh 为实际的脚本路径):

# 分 小时 日 月 星期几 
#每天凌晨1点自动执行备份脚本
0 1 * * * /path/to/backup_mongodb.sh

#如果你只需要每周执行一次自动备份
0 1 * * 0 /path/to/backup_mongodb.sh
#代表每周日凌晨1点执行

保存并退出编辑器。现在,你的 MongoDB 数据库将每天凌晨 1 点自动备份,并且只保留最近 7 天的备份数据。
以上,就完成了在阿里云服务器上配置自动备份 MongoDB 数据库的操作。

目录
相关文章
|
8月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
670 93
|
10月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
11月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
505 1
|
10月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
10月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
1023 79
|
8月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
884 7
|
8月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1433 5
|
10月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
386 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
11月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
780 3
Jasypt加密数据库配置信息

热门文章

最新文章

推荐镜像

更多