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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 我是吃了没有提前备份数据的亏,因为一次误操作,删除了所有数据。阿里云的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 数据库的操作。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
18天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
12天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
19天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
15天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
187 1
|
20天前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
13 1
|
27天前
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
25天前
|
存储 NoSQL MongoDB
mongodb的数据库表怎么创建
在此过程中,理解并掌握这些基本操作,是深入探索MongoDB魅力,乃至构建高效数据解决方案的关键所在。通过实践,您将更加深刻地体会到这种随需应变的数据管理模式带来的便利与效率提升。
23 0
|
27天前
|
存储 NoSQL MongoDB
小川科技携手阿里云数据库MongoDB:数据赋能企业构建年轻娱乐生态
基于MongoDB灵活模式的特性,小川实现了功能的快速迭代和上线,而数据库侧无需任何更改
|
1月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
2月前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)