如何计划 Amazon RDS MySQL 数据库实例二进制日志文件向 Amazon S3 的上传?

上次更新时间:2020 年 6 月 9 日

我需要将 Amazon Relational Database Service (Amazon RDS) MySQL 数据库实例二进制文件备份到 Amazon Simple Storage Service (Amazon S3) 中。我如何计划下载文件并将它们同步到 S3 存储桶中?

简短描述

默认情况下,您不能将二进制日志文件从 Amazon RDS MySQL 数据库实例复制到您选择的 S3 存储桶中。反之,将二进制日志文件下载到 Amazon Elastic Compute Cloud (Amazon EC2) 实例中。然后,使用 cron 作业将文件同步到 S3 存储桶中。

解决方法

1.    在 RDS 数据库实例上启用二进制日志文件保留,以便您可以访问 MySQL 二进制日志。以下示例将保留期设置为 24 小时:

mysql> call mysql.rds_set_configuration('binlog retention hours', 24);

2.   在您的 RDS MySQL 数据库实例上运行以下命令。确认二进制日志保留时间参数被正确设置为 24小时(或 1 天):

mysql> call mysql.rds_show_configuration;

预期输出:

+------------------------+-------+-----------------------------------------------------------------------------------------------------------+
| name                   | value | description                                                                                               |
+------------------------+-------+-----------------------------------------------------------------------------------------------------------+
| binlog retention hours | 24    | binlog retention hours specifies the duration in hours before binary logs are automatically deleted.      |
| source delay           | 0     | source delay specifies replication delay in seconds between current instance and its master.              |
| target delay           | 0     | target delay specifies replication delay in seconds between current instance and its future read-replica. |
+------------------------+-------+-----------------------------------------------------------------------------------------------------------+

3.    对于 mysqlmysqlbinlog 命令,在 EC2 实例上安装 MySQL:

$ sudo yum update
$ sudo yum install mysql57

4.    确认您已通过运行以下命令正确安装实用程序:

$ rpm -qa|grep mysql

预期输出:

mysql57-server-5.7.21-2.6.amzn1.x86_64
mysql57-common-5.7.21-2.6.amzn1.x86_64
mysql57-errmsg-5.7.21-2.6.amzn1.x86_64
mysql57-5.7.21-2.6.amzn1.x86_64

5.    创建 S3 存储桶AWS Identity and Access Management (IAM) 用户账户

6.    授予 IAM 用户访问 S3 存储桶的权限

7.   安装 AWS 命令行界面 (AWS CLI),然后配置 AWS CLI(如果尚未配置)。

8.   从 GitHub 网站中下载 rds-binlog-to-s3 script。此脚本将下载二进制日志文件,然后再将文件上传到 S3 存储桶中。

9.    修改脚本权限:

$ chmod 744 rds-binlog-to-s3.sh

10.   使用 AWS CLI 在 EC2 实例上运行 rds-binlog-to-s3 脚本:

$ rds-binlog-to-s3.sh

11.   设置 cron 作业以将二进制日志文件同步到 S3 存储桶中:

$ crontab -e
0 0  * * * /home/ec2-user/scheduler/RDS-binlog-to-s3.sh

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?