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 MySQL 5.6 ou ultérieure 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 Amazon RDS MySQL est l'instance de base de données MySQL source, et l'instance MySQL exécutée en externe sur Amazon RDS est la base de données MySQL externe.

L'instance de base de données MySQL source doit exécuter la version 5.6.13 ou version ultérieure. 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 de plus amples 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 de plus amples informations, veuillez consulter Contrôle d'accès par groupe de sécurité.

    • Si la base de données MySQL externe s'exécute dans une instance Amazon EC2 qui n'est pas dans un VPC, spécifiez les règles de sortie dans un groupe de sécurité EC2-Classic.

    • 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 :

  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 Utilisation 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 SLAVE STATUS\G MySQL. Notez les valeurs pour les éléments suivants :

    • Master_Host

    • Master_Port

    • Master_Log_File

    • Exec_Master_Log_Pos

  2. Utilisez l'utilitaire mysqldump pour créer un instantané qui copie les données Amazon RDS à partir de votre ordinateur client local. Ensuite, exécutez un autre utilitaire pour charger les données dans la base de données MySQL externe. 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 montre comment exécuter mysqldump sur un client, puis achemine le vidage vers l'utilitaire client mysql, qui charge les données dans l'instance MySQL externe.

    Pour Linux, macOS ou Unix :

    mysqldump -h source_MySQL_DB_instance_endpoint \ -u user \ -ppassword \ --port=3306 \ --single-transaction \ --routines \ --triggers \ --databases database database2 \ --compress \ --port 3306

    Pour Windows :

    mysqldump -h source_MySQL_DB_instance_endpoint ^ -u user ^ -ppassword ^ --port=3306 ^ --single-transaction ^ --routines ^ --triggers ^ --databases database database2 ^ --compress ^ --port 3306

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

    Pour Linux, macOS 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

    Pour Windows :

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

Terminer l'exportation

Effectuez les étapes suivantes pour terminer l'exportation.

Pour terminer l'exportation

  1. Chargez les fichiers mysqldump pour créer les bases de données sur la base de données MySQL externe.

  2. Sur le réplica en lecture Amazon RDS, appelez la procédure stockée mysql.rds_start_replication. 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.

  3. 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 SLAVE STATUS\G MySQL que vous avez exécutée sur le réplica en lecture RDS. Pour de plus amples informations, veuillez consulter la documentation MySQL.

  4. Utilisez la commande START SLAVE 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.

  5. Exécutez la commande SHOW SLAVE 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.

  6. 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 SLAVE MySQL pour arrêter la réplication à partir de l'instance de base de données MySQL source.

  7. 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.