如果您在这里徘徊,那么我不需要向您解释为什么执行 MySQL 数据库的定期备份对于防止任何数据丢失至关重要。许多人问的关键问题是在哪里存储这些备份。特别是在处理需要大量存储空间的大型数据库时,由于其可扩展性和低成本,对象存储是首选解决方案。
在本文中,我们将向您展示如何直接从命令行将MySQL 数据库备份到与Contabo S3 兼容的对象存储。这要归功于 Contabo 对象存储与 AWS CLI(亚马逊网络服务命令行界面)兼容。
不要惊讶于本指南比您可以在网上找到的许多其他指南短得多。这要归功于 AWS CLI,它使 Contabo 对象存储的配置比使用其他存储解决方案更容易。
此外,由于上述 S3 兼容性,将备份文件从 Linux 服务器传输到对象存储非常容易。
如果您从未听说过 Contabo Object Storage,可以在此处了解更多信息。
先决条件/要求
为了执行 MySQL 数据库的备份,需要以下内容:
- 手头有这些凭据的 S3 兼容对象存储:
- 您的访问密钥
- 你的秘钥
- 您的 S3 网址
- AWS CLI 已经安装(并配置)在运行 MySQL 数据库的服务器上。
如果您想了解如何在您的服务器上安装和配置 AWS CLI,请在此处查看我们的文档。
创建数据库的备份
在将 MySQL 数据库的备份上传到对象存储之前,您需要先创建一个本地备份。
幸运的是,这可以通过 MySQL 的内置命令来完成:
mysqldump –u [username] -p[password] [database_name] > backup.sql
根据数据库的大小,此过程可能需要一段时间。
将[username]和[password]替换为您的 MySQL 实例登录数据。
将[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 对象存储。
为此,请使用此命令创建脚本:
nano database-to-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 将 MySQL 数据库备份到对象存储是一个简单高效的过程,可以为重要数据提供额外的保护层。借助 AWS CLI 和本文中概述的命令,用户可以轻松地自动执行备份过程、安排定期备份并将备份安全地存储在对象存储中。