如果您已经读到这里,我假设您已经知道定期备份 MongoDB 数据库以防止任何数据丢失的重要性。许多人主要关心的是决定将这些备份保存在何处,尤其是在处理需要大量存储空间的大型数据库时。对象存储因其可扩展性和成本效益而成为强烈推荐的解决方案。
本文将演示如何使用命令行执行MongoDB 数据库的备份并将它们存储在与Contabo S3 兼容的对象存储中。这是可以实现的原因是因为 Contabo 对象存储与 Amazon Web Services 命令行界面 (AWS CLI) 兼容。
您可能会注意到本指南比在线提供的其他指南短得多,但这是因为使用 AWS CLI 配置 Contabo 对象存储很容易。此外,S3 兼容性允许将备份文件从 Linux 服务器简单地传输到对象存储。如果您不熟悉 Contabo 对象存储,可以单击此处了解更多信息。
为了执行 MongoDB 数据库的备份,需要以下内容:
先决条件/要求
要执行 MongoDB 数据库的备份,您需要以下内容:
- 兼容 S3 的对象存储
- 您的访问密钥
- 你的秘钥
- 您的 S3 网址
- AWS CLI 已经安装(并配置)在运行 MongoDB 数据库的服务器上
如果您在服务器上安装和配置 AWS CLI 时需要帮助,您可以参考此链接提供的文档。
创建数据库的备份
要将您的 MongoDB 数据库备份传输到您的对象存储,您必须首先创建一个本地备份。幸运的是,这可以使用 MongoDB 的内置命令来实现:
mysqldump –u [username] -p[password] [database_name] > backup.sql
此过程的持续时间将根据数据库的大小而有所不同。您应该将[username]和[password]替换为您的 MongoDB 实例的登录凭据,并将[database_name]替换为您希望备份的特定数据库的名称。文件名“ backup.sql ”表示备份文件的名称,但如果您愿意,可以选择不同的名称。
上传您的数据库备份
使用后续命令将本地创建的数据库备份传输到 Contabo 对象存储:
aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用 Cron 计划定期数据库备份
要为特定数据库设置定期备份,您必须完成两项任务:
1. 创建一个 Shell 脚本
初始步骤涉及创建一个 shell 脚本,该脚本生成指定数据库的本地备份,然后使用 AWS CLI 将其传输到 Contabo Object Storage。
要创建此脚本,请使用以下命令:
nano 数据库到 os.sh
并添加以下内容:
#!/bin/bash mysqldump –u [username] -p[password] [database_name] > backup.sql aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用[CTRL] + O保存脚本并使用[CTRL] + X 退出编辑器
现在使用此命令使脚本可执行:
chmod +x database-to-os.sh
2.编辑crontab文件
现在打开 Crontab 文件,您可以在其中使用以下命令安排备份:
crontab -e
并粘贴以下内容:
0 3 * * * /[path_to_script]/databse-to-os.sh
该脚本被编程为每天凌晨 3:00执行数据库备份。如果您喜欢不同的时间表,您可以相应地修改脚本。有关 Cron 语法的其他信息可以在文件本身中找到。
结论
总之,使用 AWS CLI 将 MongoDB 数据库备份到对象存储是一种直接有效的方法,可以为有价值的数据增加额外的安全层。通过使用 AWS CLI 和本文提供的命令,用户可以高效地自动执行备份过程、安排定期备份并将备份安全地存储在对象存储中。