Comment planifier le téléchargement des fichiers journaux binaires d'une instance de base de données Amazon RDS for MySQL dans Simple Storage Service (Amazon S3) ?

Lecture de 3 minute(s)
0

Je dois sauvegarder les fichiers journaux binaires d'instance de base de données for MySQL Amazon Relational Database Service (Amazon RDS) dans Amazon Simple Storage Service (Amazon S3). Comment puis-je planifier le téléchargement des fichiers et leur synchronisation dans un compartiment S3 ?

Brève description

Par défaut, vous ne pouvez pas copier les fichiers journaux binaires d'une instance de base de données Amazon RDS for MySQL vers un compartiment S3 que vous choisissez. Au lieu de cela, téléchargez les fichiers journaux binaires sur une instance Amazon Elastic Compute Cloud (Amazon EC2). Ensuite, synchronisez les fichiers dans un compartiment S3 à l'aide d'une tâche cron.

Résolution

Remarque : en cas d'erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

1.    Activez la conservation des fichiers journaux binaires sur l'instance de base de données RDS afin de pouvoir accéder aux journaux binaires MySQL. Cet exemple définit la période de conservation sur 24 heures :

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

2.    Exécutez la commande suivante sur votre instance de bases de données Amazon RDS for MySQL. Confirmez que le paramètre des heures de conservation des journaux binaires est correctement défini sur 24 (ou 1 jour) :

mysql> call mysql.rds_show_configuration;

Sortie attendue :

+------------------------+-------+-----------------------------------------------------------------------------------------------------------+
| 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.    Installez MySQL sur l'instance EC2 pour les commandes mysql et mysqlbinlog :

$ sudo yum update

$ sudo yum install mysql57

4.    Vérifiez que vous avez installé les utilitaires correctement en exécutant la commande suivante :

$ rpm -qa|grep mysql

Sortie attendue :

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.    Créez un compartiment S3 et un compte utilisateur AWS Identity and Access Management (IAM).

6.    Accordez à l'utilisateur IAM les autorisations d'accès au compartiment S3.

7.    Installez l'interface de ligne de commande AWS, puis configurez AWS CLI, si vous ne l'avez pas déjà fait.

8.    Téléchargez le script rds-binlog-to-s3 sur le site web GitHub. Ce script télécharge les fichiers journaux binaires, puis les charge dans un compartiment S3.

9.    Modifiez les autorisations de script :

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

10.    Exécutez le script rds-binlog-to-s3 sur l'instance EC2 à l'aide du AWS CLI. Modifiez la commande mysqlbinlog dans le script pour inclure toutes les options mysqlbinlog que vous souhaitez ajouter :

$ rds-binlog-to-s3.sh

11.    Définissez une tâche cron pour synchroniser les fichiers journaux binaires dans le compartiment S3 :

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

Informations connexes

Fichiers de journal de base de données MySQL