Exportation de données à partir d'une instance DB MySQL grâce à la réplication - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exportation de données à partir d'une instance DB MySQL grâce à la réplication

Pour exporter des données à partir d'une instance de base de données RDS for MySQL vers une instance MySQL exécutée en externe sur Amazon RDS, vous pouvez utiliser la réplication. Dans ce scénario, l'instance de base de données MySQL est l'instance de base de données MySQL source, et l'instance MySQL qui s'exécute en externe sur Amazon RDS est la base de données MySQL externe.

La base de données MySQL externe peut s'exécuter soit localement dans votre centre de données, soit sur une instance Amazon EC2. La base de données MySQL externe doit exécuter la même version que l'instance de base de données MySQL source, ou une version ultérieure.

La réplication vers une base de données MySQL externe n'est prise en charge que pendant le temps nécessaire à l'exportation d'une base de données à partir de l'instance de base de données MySQL source. La réplication doit être terminée une fois que les données ont été exportées et que les applications peuvent commencer à accéder à l'instance externe.

La liste suivante montre les étapes à suivre. Chaque étape est présentée plus en détail dans les sections ultérieures.

  1. Préparez une instance de base de données MySQL externe.

  2. Préparez l'instance de base de données MySQL source pour la réplication.

  3. Utilisez l'utilitaire mysqldump pour transférer la base de données de l'instance de base de données MySQL source vers la base de données MySQL externe.

  4. Démarrez la réplication vers la base de données MySQL externe.

  5. Une fois l'exportation terminée, arrêtez la réplication.

Préparer une base de données MySQL externe

Effectuez les étapes suivantes pour préparer la base de données MySQL externe.

Pour créer la base de données MySQL externe
  1. Installez la base de données MySQL externe.

  2. Connectez-vous à la base de données MySQL externe en tant qu'utilisateur principal. Créez ensuite les utilisateurs requis pour prendre en charge les administrateurs, les applications et les services qui accèdent à la base de données.

  3. Suivez les instructions de la documentation MySQL pour préparer la base de données MySQL externe en tant que réplica. Pour plus d'informations, veuillez consulter la documentation MySQL.

  4. Configurez une règle de sortie pour que la base de données MySQL externe fonctionne comme un réplica en lecture pendant l'exportation. La règle de sortie permet à la base de données MySQL externe de se connecter à l'instance de base de données MySQL source pendant la réplication. Spécifiez une règle de sortie qui autorise les connexions TCP (Transmission Control Protocol) au port et à l'adresse IP de l'instance de base de données MySQL source.

    Spécifiez les règles de sortie appropriées pour votre environnement :

    • Si la base de données MySQL externe s'exécute dans une instance Amazon EC2 dans un Cloud privé virtuel (VPC) basé sur le service Amazon VPC, spécifiez les règles de sortie dans un groupe de sécurité VPC. Pour plus d'informations, consultez Contrôle d'accès par groupe de sécurité.

    • Si la base de données MySQL externe est installée localement, spécifiez les règles de sortie dans un pare-feu.

  5. Si la base de données MySQL externe est en cours d'exécution dans un VPC, configurez les règles pour les règles de liste de contrôle d'accès (ACL) VPC en plus de la règle de sortie du groupe de sécurité :

    • Configurez une règle d'entrée ACL autorisant le trafic TCP vers les ports 1024–65535 à partir de l'adresse IP de l'instance de base de données MySQL source.

    • Configurez une règle de sortie ACL autorisant le trafic TCP sortant vers le port et l'adresse IP de l'instance de base de données MySQL source.

    Pour de plus amples informations sur les ACL réseau Amazon VPC, veuillez consulter ACL réseau dans Amazon VPC Guide de l'utilisateur.

  6. (Facultatif) Définissez le paramètre max_allowed_packet sur la taille maximale pour éviter les erreurs de réplication. Nous recommandons ce paramètre.

Préparer l'instance de base de données MySQL source

Effectuez les étapes suivantes pour préparer l'instance de base de données MySQL source en tant que source de réplication.

Pour préparer l'instance de base de données MySQL source
  1. Assurez-vous que votre ordinateur client possède assez d'espace disque pour enregistrer les journaux binaires lors de la configuration de la réplication.

  2. Connectez-vous à l'instance de base de données MySQL source et créez un compte de réplication en suivant les instructions de Création d'un utilisateur pour la réplication dans la documentation MySQL.

  3. Configurez les règles d'entrée sur le système exécutant l'instance de base de données MySQL source pour permettre à la base de données MySQL externe de se connecter pendant la réplication. Spécifiez une règle d'entrée qui autorise les connexions TCP au port utilisé par l'instance de base de données MySQL source à partir de l'adresse IP de la base de données MySQL externe.

  4. Spécifiez les règles de sortie :

    • Si l'instance de base de données MySQL source s'exécute dans un VPC, spécifiez les règles d'entrée dans un groupe de sécurité VPC. Pour plus d'informations, consultez Contrôle d'accès par groupe de sécurité.

  5. Si l'instance de base de données MySQL source est en cours d'exécution dans un VPC, configurez les règles ACL VPC en plus de la règle d'entrée de groupe de sécurité :

    • Configurez une règle d'entrée ACL pour autoriser les connexions TCP au port utilisé par l'instance Amazon RDS à partir de l'adresse IP de la base de données MySQL externe.

    • Configurez une règle de sortie ACL pour autoriser les connexions TCP des ports 1024–65535 vers l'adresse IP de la base de données MySQL externe.

    Pour de plus amples informations sur les ACL réseau Amazon VPC, veuillez consulter ACL réseau dans Amazon VPC Guide de l'utilisateur.

  6. Assurez-vous que la période de rétention des sauvegardes soit assez longue pour qu'aucun journal binaire ne soit purgé pendant l'exportation. Si l'un des journaux est purgé avant la fin de l'exportation, vous devez redémarrer la réplication depuis le début. Pour plus d'informations sur la configuration de la période de rétention des sauvegardes, consultez Présentation des sauvegardes.

  7. Utilisez la procédure stockée mysql.rds_set_configuration pour définir une période de conservation du journal binaire suffisamment longue pour que les journaux binaires ne soient pas purgés pendant l'exportation. Pour plus d'informations, consultez Accès aux journaux binaires MySQL.

  8. Créez un réplica en lecture Amazon RDS à partir de l'instance de base de données MySQL source afin de vous assurer que les journaux binaires de l'instance de base de données MySQL source ne seront pas purgés. Pour plus d'informations, consultez Création d'un réplica en lecture.

  9. Une fois que le réplica en lecture Amazon RDS a été créé, appelez la procédure stockée mysql.rds_stop_replication pour arrêter le processus de réplication. L'instance de base de données MySQL source ne purge plus ses fichiers journaux binaires, ils sont donc disponibles pour le processus de réplication.

  10. (Facultatif) Définissez le paramètre max_allowed_packet et le paramètre slave_max_allowed_packet sur la taille maximale pour éviter les erreurs de réplication. La taille maximale pour les deux paramètres est de 1 Go. Nous recommandons ces valeurs pour les deux paramètres. Pour plus d'informations sur la définition des paramètres, consultez Modification de paramètres dans un groupe de paramètres de bases de données.

Copier la base de données

Effectuez les étapes suivantes pour copier la base de données.

Pour copier la base de données
  1. Connectez-vous au réplica en lecture RDS de l'instance de base de données MySQL source et exécutez l'instruction SHOW REPLICA STATUS\G MySQL. Notez les valeurs pour les éléments suivants :

    • Master_Host

    • Master_Port

    • Master_Log_File

    • Exec_Master_Log_Pos

    Note

    Les versions précédentes de MySQL utilisaient SHOW SLAVE STATUS à la place de SHOW REPLICA STATUS. Si vous utilisez une version de MySQL antérieure à la version 8.0.23, utilisez alors SHOW SLAVE STATUS.

  2. Utilisez l'utilitaire mysqldump pour créer un instantané qui copie les données Amazon RDS à partir de votre ordinateur client local. Assurez-vous que votre ordinateur client possède assez d'espace disque pour contenir les fichiers mysqldump des bases de données à répliquer. Ce processus peut prendre plusieurs heures pour les bases de données très volumineuses. Suivez les instructions de la partie Création d'un instantané de données à l'aide de mysqldump dans la documentation MySQL.

    L'exemple suivant exécute mysqldump sur un client et écrit le vidage dans un fichier.

    Pour LinuxmacOS, ou Unix :

    mysqldump -h source_MySQL_DB_instance_endpoint \ -u user \ -ppassword \ --port=3306 \ --single-transaction \ --routines \ --triggers \ --databases database database2 > path/rds-dump.sql

    Dans Windows :

    mysqldump -h source_MySQL_DB_instance_endpoint ^ -u user ^ -ppassword ^ --port=3306 ^ --single-transaction ^ --routines ^ --triggers ^ --databases database database2 > path\rds-dump.sql

    Vous pouvez charger le fichier de sauvegarde dans la base de données MySQL externe. Pour plus d'informations, consultez Reloading SQL-Format Backups (Rechargement des sauvegardes au format SQL) dans la documentation MySQL. Vous pouvez exécuter un autre utilitaire pour charger les données dans la base de données MySQL externe.

Terminer l'exportation

Effectuez les étapes suivantes pour terminer l'exportation.

Pour terminer l'exportation
  1. Utilisez l'instruction MySQL CHANGE MASTER pour configurer l'instance MySQL externe. Spécifiez l'ID et le mot de passe de l'utilisateur auquel ont été attribuées les autorisations REPLICATION SLAVE. Spécifiez les valeurs Master_Host, Master_Port, Relay_Master_Log_File et Exec_Master_Log_Pos obtenues à partir de l'instruction SHOW REPLICA STATUS\G MySQL que vous avez exécutée sur le réplica en lecture RDS. Pour plus d'informations, veuillez consulter la documentation MySQL.

    Note

    Les versions précédentes de MySQL utilisaient SHOW SLAVE STATUS à la place de SHOW REPLICA STATUS. Si vous utilisez une version de MySQL antérieure à la version 8.0.23, utilisez alors SHOW SLAVE STATUS.

  2. Utilisez la commande START REPLICA MySQL pour lancer la réplication à partir de l'instance de base de données MySQL source vers la base de données MySQL externe.

    Cela démarre la réplication à partir de l'instance de base de données MySQL source et exporte toutes les modifications de source qui se sont produites après l'arrêt de la réplication à partir du réplica en lecture Amazon RDS.

    Note

    Les versions précédentes de MySQL utilisaient START SLAVE à la place de START REPLICA. Si vous utilisez une version de MySQL antérieure à la version 8.0.23, utilisez alors START SLAVE.

  3. Exécutez la commande SHOW REPLICA STATUS\G MySQL sur la base de données MySQL externe pour vérifier qu'elle fonctionne comme un réplica en lecture. Pour de plus amples informations sur l'interprétation des résultats, veuillez consulter la documentation MySQL.

  4. Une fois que la réplication sur la base de données MySQL externe a rattrapé l'instance de base de données MySQL source, utilisez la commande STOP REPLICA MySQL pour arrêter la réplication à partir de l'instance de base de données MySQL source.

    Note

    Les versions précédentes de MySQL utilisaient STOP SLAVE à la place de STOP REPLICA. Si vous utilisez une version de MySQL antérieure à la version 8.0.23, utilisez alors STOP SLAVE.

  5. Sur le réplica en lecture Amazon RDS, appelez la procédure stockée mysql.rds_start_replication. Cela permet à Amazon RDS de démarrer la purge des fichiers journaux binaires à partir de l'instance de base de données MySQL source.