Comment puis-je planifier le chargement des fichiers journaux binaires d'instance de base de données MySQL Amazon RDS dans Amazon S3 ?

Date de la dernière mise à jour : 09/06/2020

Je dois sauvegarder les fichiers journaux binaires d'instance de base de données 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 MySQL Amazon RDS vers un compartiment S3 de votre choix. 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.

Solution

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. L'exemple suivant 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 base de données RDS MySQL. Vérifiez 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 (AWS CLI), puis configurez-la 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 de l'interface de ligne de commande AWS :

$ 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

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?