Importation de données vers une base de données Amazon RDS for MySQL avec une durée d’indisponibilité réduite - Amazon Relational Database Service

Importation de données vers une base de données Amazon RDS for MySQL avec une durée d’indisponibilité réduite

Dans certains cas, vous pouvez avoir besoin d’importer des données d’une base de données MySQL externe qui prend en charge une application active vers une instance de base de données RDS for MySQL, ou un cluster de bases de données multi-AZ RDS for MySQL. Utilisez la procédure suivante pour réduire l’impact sur la disponibilité des applications. Cette procédure peut s’avérer également utile si vous travaillez avec une base de données très volumineuse. Cette procédure vous permet de réduire le coût de l'importation en diminuant la quantité de données transmises à AWS via le réseau.

Dans cette procédure, vous transférez une copie des données de votre base de données vers une instance Amazon EC2 et vous importez les données dans une nouvelle base de données Amazon RDS. Vous pouvez alors utiliser la réplication pour mettre à jour la base de données Amazon RDS avec votre instance externe active, avant de rediriger votre application vers la base de données Amazon RDS. Configurez la réplication en fonction des coordonnées des journaux binaires.

Note

Si vous souhaitez importer des données dans une instance de base de données RDS for MySQL et que votre scénario le permet, nous recommandons de déplacer les données dans et hors d’Amazon RDS en utilisant des fichiers de sauvegarde et Amazon S3. Pour plus d’informations, consultez Restauration d’une sauvegarde dans une instance de base de données Amazon RDS for MySQL.

Le schéma suivant montre l’importation d’une base de données MySQL externe dans une base de données MySQL sur Amazon RDS.

Flux de travail qui montre l’importation d’une base de données MySQL externe dans une base de données MySQL sur Amazon RDS.

Tâche 1 : Créer une copie de votre base de données existante

La première étape du processus de migration d’une grande quantité de données vers une base de données RDS for MySQL avec une durée d’indisponibilité minimale consiste à créer une copie des données sources.

Le schéma suivant montre la création d’une sauvegarde de base de données MySQL.

Flux de travail qui montre la création d’une sauvegarde de la base de données MySQL.

Vous pouvez recourir à l'utilitaire mysqldump pour créer une sauvegarde de base de données au format SQL ou texte délimité. Nous vous recommandons d’effectuer un test avec chaque format dans un environnement autre que celui de production afin de déterminer la méthode qui minimise le temps d’exécution de mysqldump.

Nous vous recommandons également de comparer les performances de mysqldump avec les avantages offerts par l’utilisation du format texte délimité pour le chargement. Une sauvegarde à l’aide du format texte délimité crée un fichier texte séparé par des tabulations pour chaque table vidée. Pour réduire le temps nécessaire à l’importation de votre base de données, vous pouvez charger ces fichiers en parallèle en utilisant la commande LOAD DATA LOCAL INFILE. Pour plus d’informations, consultez Étape 5 : Charger les données dans la procédure Importation de données à partir de n’importe quelle source.

Avant de commencer l’opération de sauvegarde, assurez-vous de définir les options de réplication sur la base de données MySQL que vous copiez vers Amazon RDS. Les options de réplication incluent l’activation de la journalisation binaire et la configuration d’un ID de serveur unique. La définition de ces options oblige votre serveur à démarrer la journalisation des transactions de base de données et le prépare à être une instance de réplication source ultérieurement dans le processus.

Assurez-vous que vous êtes conscient des recommandations et des considérations suivantes :

  • Utilisez l'option --single-transaction avec mysqldump, car elle vide un état cohérent de la base de données. Pour vous assurer de la validité d'un fichier de vidage, n'exécutez pas les instructions DDL (Data Definition Language) pendant l'exécution de mysqldump. Vous pouvez planifier une fenêtre de maintenance pour ces opérations.

  • Excluez les schémas suivants du fichier de vidage :

    • sys

    • performance_schema

    • information_schema

    L’utilitaire mysqldump exclut ces schémas par défaut.

  • Si vous devez migrer les utilisateurs et les privilèges, envisagez d'utiliser un outil qui génère le langage de contrôle des données (DCL) pour les recréer, tel que l'utilitaire pt-show-grants.

Pour définir les options de réplication

  1. Modifiez le fichier my.cnf. Ce fichier se trouve généralement sous /etc.

    sudo vi /etc/my.cnf

    Ajoutez les options log_bin et server_id à la section [mysqld]. L'option log_bin fournit un identifiant de nom de fichier pour les fichiers journaux binaires. L’option server_id fournit un identifiant unique pour le serveur dans les relations source/réplica.

    L’exemple suivant illustre la section [mysqld] mise à jour d’un fichier my.cnf :

    [mysqld] log-bin=mysql-bin server-id=1

    Pour plus d’informations, consultez Setting the Replication Source Configuration dans la documentation MySQL.

  2. Pour la réplication avec un cluster de bases de données multi-AZ, définissez les paramètres ENFORCE_GTID_CONSISTENCY et GTID_MODE sur ON.

    mysql> SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
    mysql> SET @@GLOBAL.GTID_MODE = ON;

    Ces paramètres ne sont pas requis pour la réplication avec une instance de base de données.

  3. Redémarrez le service mysql.

    sudo service mysqld restart

Pour créer une copie de sauvegarde de votre base de données existante

  1. Créez une sauvegarde de vos données à l'aide de l'utilitaire mysqldump, en spécifiant un format SQL ou un format texte délimité.

    Pour MySQL 8.0.25 et versions antérieures, spécifiez --master-data=2 pour créer un fichier de sauvegarde qui peut être utilisé pour démarrer la réplication entre les serveurs. Pour MySQL 8.0.26 et versions ultérieures, spécifiez --source-data=2 pour créer un fichier de sauvegarde qui peut être utilisé pour démarrer la réplication entre les serveurs. Pour plus d’informations, consultez mysqldump – Programme de sauvegarde de base de données dans la documentation MySQL.

    Pour améliorer les performances et assurer l’intégrité des données, utilisez les options --order-by-primary et --single-transaction pour mysqldump.

    Pour éviter d’inclure la base de données système MySQL dans la sauvegarde, n’utilisez pas l’option --all-databases avec mysqldump. Pour plus d’informations, consultez Création d’un instantané de données avec mysqldump dans la documentation MySQL.

    Utilisez chmod, si nécessaire, pour vous assurer que le répertoire où le fichier de sauvegarde est en cours de création est accessible en écriture.

    Important

    Sur Windows, exécutez la fenêtre de commande en tant qu’administrateur.

    • Pour produire une sortie SQL, utilisez la commande suivante :

      Pour Linux, macOS ou Unix :

      sudo mysqldump \ --databases database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -u local_user \ -ppassword
      Note

      Une bonne pratique de sécurité consiste à spécifier des informations d’identification autres que les invites affichées dans l’exemple.

      Pour Windows :

      mysqldump ^ --databases database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -u local_user ^ -ppassword
      Note

      Une bonne pratique de sécurité consiste à spécifier des informations d’identification autres que les invites affichées dans l’exemple.

    • Pour produire une sortie à texte délimité, utilisez la commande suivante :

      Pour Linux, macOS ou Unix :

      sudo mysqldump \ --tab=target_directory \ --fields-terminated-by ',' \ --fields-enclosed-by '"' \ --lines-terminated-by 0x0d0a \ database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -ppassword

      Pour Windows :

      mysqldump ^ --tab=target_directory ^ --fields-terminated-by "," ^ --fields-enclosed-by """ ^ --lines-terminated-by 0x0d0a ^ database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -ppassword
      Note

      Une bonne pratique de sécurité consiste à spécifier des informations d’identification autres que les invites affichées dans l’exemple.

      Assurez-vous de créer manuellement les procédures stockées, déclencheurs, fonctions ou événements dans votre base de données Amazon RDS. Si vous avez l’un de ces objets dans la base de données que vous copiez, excluez-les lorsque lors de l’exécution de mysqldump. Pour ce faire, incluez les arguments suivants dans votre commande mysqldump :

      • --routines=0

      • --triggers=0

      • --events=0

      Pour MySQL 8.0.22 et versions antérieures, lorsque vous exécutez mysqldump et spécifiez le format texte délimité, un commentaire CHANGE MASTER TO est retourné. Ce commentaire contient le nom du fichier journal maître et son emplacement. Pour MySQL 8.0.23 et versions ultérieures, lorsque vous exécutez mysqldump et spécifiez le format texte délimité, un commentaire CHANGE REPLICATION SOURCE TO est retourné. Ce commentaire contient le nom du fichier journal source et son emplacement. Si l’instance externe est MySQL 8.0.23 et versions ultérieures, notez les valeurs pour MASTER_LOG_FILE et MASTER_LOG_POS. Vous avez besoin de ces valeurs lors de la configuration de la réplication.

      La sortie suivante est retournée pour MySQL 8.0.22 et versions antérieures :

      -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

      La sortie suivante est retournée pour MySQL 8.0.23 et versions ultérieures :

      -- Position to start replication or point-in-time recovery from -- -- CHANGE SOURCE TO SOURCE_LOG_FILE='mysql-bin-changelog.000031', SOURCE_LOG_POS=107;

      Pour MySQL 8.0.22 et versions antérieures, si vous utilisez le format SQL, vous pouvez obtenir le nom du fichier journal principal et son emplacement dans le commentaire CHANGE MASTER TO du fichier de sauvegarde. Pour MySQL 8.0.23 et versions ultérieures, si vous utilisez le format SQL, vous pouvez obtenir le nom du fichier journal source et son emplacement dans le commentaire CHANGE REPLICATION SOURCE TO du fichier de sauvegarde.

  2. Compressez les données copiées afin de réduire la quantité de ressources réseau nécessaires pour copier vos données sur la base de données Amazon RDS. Notez la taille du fichier de sauvegarde. Vous avez besoin de cette information lorsque vous déterminez la taille de l'instance Amazon EC2 à créer. Lorsque vous avez terminé, compressez le fichier de sauvegarde à l’aide de GZIP ou de votre utilitaire de compression favori.

    • Pour compresser une sortie SQL, utilisez la commande suivante :

      gzip backup.sql
    • Pour compresser une sortie à texte délimité, utilisez la commande suivante :

      tar -zcvf backup.tar.gz target_directory

Tâche 2 : Créer une instance Amazon EC2 et copier la base de données compressée

La copie du fichier de sauvegarde compressé de votre base de données sur une instance Amazon EC2 nécessite moins de ressources réseau que l’exécution d’une copie directe de données non compressées entre instances de bases de données. Une fois que vos données sont dans Amazon EC2, vous pouvez les copier directement de cet emplacement vers votre base de données MySQL. Pour pouvoir économiser sur le coût des ressources réseau, votre instance Amazon EC2 doit se trouver dans la même Région AWS que votre instance de base de données Amazon RDS. Le fait d’avoir l’instance Amazon EC2 dans la même Région AWS que votre base de données Amazon RDS a également pour effet de réduire la latence réseau pendant l’importation.

Le schéma suivant montre la copie de la sauvegarde de base de données vers une instance Amazon EC2.

Flux de travail montrant la copie de la sauvegarde de base de données vers une instance Amazon EC2.

Pour créer une instance Amazon EC2 et copier vos données

  1. Dans la Région AWS où vous envisagez de créer la base de données Amazon RDS, créez un cloud privé virtuel (VPC), un groupe de sécurité VPC et un sous-réseau VPC. Assurez-vous que les règles entrantes de votre groupe de sécurité VPC autorisent les adresses IP requises pour que votre application se connecte à AWS. Vous pouvez spécifier une plage d’adresses IP (par exemple, 203.0.113.0/24) ou un autre groupe de sécurité VPC. Vous pouvez utiliser la Console Amazon VPC pour créer et gérer des VPC, des sous-réseaux et des groupes de sécurité. Pour plus d’informations, consultez Démarrez avec Amazon VPC dans le Guide de l’utilisateur Amazon Virtual Private Cloud.

  2. Ouvrez la console Amazon EC2 et sélectionnez la Région AWS qui contiendra votre instance Amazon EC2 et votre base de données Amazon RDS. Lancez une instance Amazon EC2 à l’aide du VPC, du sous-réseau et du groupe de sécurité que vous avez créés à l’étape 1. Vérifiez que vous sélectionnez un type d’instance avec un stockage suffisant pour le fichier de sauvegarde de votre base de données une fois qu’il est décompressé. Pour plus d’informations sur les instances Amazon EC2, consultez Démarrez avec Amazon EC2 dans le Guide de l’utilisateur Amazon Elastic Compute Cloud.

  3. Pour vous connecter à votre base de données Amazon RDS à partir de votre instance Amazon EC2, modifiez votre groupe de sécurité VPC. Ajoutez une règle de trafic entrant en spécifiant l’adresse IP privée de votre instance EC2. L’adresse IP privée se trouve sous l’onglet Détails du volet Instance de la fenêtre de la console EC2. Pour modifier le groupe de sécurité VPC et ajouter une règle de trafic entrant, choisissez Security Groups (Groupes de sécurité) dans le panneau de navigation de la console EC2, choisissez votre groupe de sécurité et ajoutez une règle de trafic entrant pour MySQL/Aurora en spécifiant l’adresse IP privée de votre instance EC2. Pour apprendre à ajouter une règle de trafic entrant à un groupe de sécurité VPC, consultez Règles du groupe de sécurité dans le Guide de l’utilisateur Amazon VPC Private Cloud.

  4. Copiez le fichier de sauvegarde compressé de votre base de données depuis votre système local vers votre instance Amazon EC2. Utilisez chmod, si nécessaire, pour vous assurer d’avoir l’autorisation d’écriture dans le répertoire cible de l’instance Amazon EC2. Vous pouvez utiliser scp ou un client SSH pour copier le fichier. Voici un exemple de commande scp :

    scp -r -i key pair.pem backup.sql.gz ec2-user@EC2 DNS:/target_directory/backup.sql.gz
    Important

    Lorsque vous copiez des données sensibles, assurez-vous d’utiliser un protocole de transfert réseau sécurisé.

  5. Connectez-vous à votre instance Amazon EC2, puis installez les dernières mises à jour et les outils clients MySQL à l'aide des commandes suivantes :

    sudo yum update -y sudo yum install mysql -y

    Pour plus d’informations, consultez Connexion à votre instance pour les instances Linux dans le Guide de l’utilisateur Amazon Elastic Compute Cloud.

    Important

    Cet exemple installe le client MySQL sur une Amazon Machine Image (AMI) pour une distribution Amazon Linux. Cet exemple n’installe pas le client MySQL sur une autre distribution, comme Ubuntu ou Red Hat Enterprise Linux. Pour en savoir plus sur l’installation de MySQL, consultez Installation de MySQL dans la documentation MySQL.

  6. Une fois connecté à votre instance Amazon EC2, décompressez le fichier de sauvegarde de votre base de données. Les commandes suivantes sont des exemples.

    • Pour décompresser une sortie SQL, utilisez la commande suivante :

      gzip backup.sql.gz -d
    • Pour décompresser une sortie texte délimité, utilisez la commande suivante :

      tar xzvf backup.tar.gz

Tâche 3 : Créer une base de données MySQL et importer les données depuis votre instance Amazon EC2

En créant une instance de base de données RDS for MySQL, ou un cluster de bases de données multi-AZ RDS for MySQL dans la même Région AWS que votre instance Amazon EC2, vous pouvez importer le fichier de sauvegarde de base de données plus rapidement à partir d’Amazon EC2 que via Internet.

Le schéma suivant montre l’importation de la sauvegarde d’une instance Amazon EC2 vers une base de données MySQL.

Flux de travail montrant l’importation de la sauvegarde de l’instance EC2 vers la base de données MySQL.

Pour créer une base de données MySQL et importer vos données

  1. Déterminez quelle classe d’instance de base de données et quelle quantité d’espace de stockage sont nécessaires pour prendre en charge la charge de travail attendue pour cette base de données Amazon RDS. Dans le cadre de ce processus, décidez de l’espace suffisant et de la capacité de traitement qui conviennent à vos procédures de chargement des données. Décidez également ce qui est nécessaire pour gérer la charge de travail de production. Vous pouvez estimer ces éléments en fonction de la taille et des ressources de la base de données source MySQL. Pour plus d’informations, consultez Classes d’instance de base de données .

  2. Créez une instance de base de données ou un cluster de bases de données multi-AZ dans la Région AWS qui contient votre instance Amazon EC2.

    Pour créer un cluster de bases de données multi-AZ RDS for MySQL, suivez les instructions dans Création d’un cluster de bases de données Multi-AZ pour Amazon RDS.

    Pour créer une instance de base de données RDS for MySQL, suivez les instructions dans Création d'une instance de base de données Amazon RDS et utilisez les instructions suivantes :

    • Spécifiez une version du moteur de base de données compatible avec votre instance de base de données source.

    • Spécifiez les mêmes cloud privé virtuel (VPC) et groupe de sécurité VPC que pour votre instance Amazon EC2. Cette approche garantit que votre instance Amazon EC2 et votre instance Amazon RDS sont visibles l’une de l’autre sur le réseau. Assurez-vous que votre instance de base de données est accessible au public. Pour configurer la réplication avec votre base de données source comme décrit dans l’une des sections suivantes, votre instance de base de données doit être publiquement accessible.

    • Ne configurez pas plusieurs zones de disponibilité, la rétention des sauvegardes ou les réplicas en lecture tant que vous n’avez pas importé la sauvegarde de la base de données. Lorsque l'importation est terminée, vous pouvez configurer l'option multi-AZ et la rétention des sauvegardes pour l'instance de production.

  3. Vérifiez les options de configuration par défaut de la base de données Amazon RDS. Si le groupe de paramètres par défaut pour la base de données ne dispose pas des options de configuration que vous voulez, trouvez un autre groupe qui les possède ou créez un groupe de paramètres. Pour plus d’informations sur la création d’un groupe de paramètres, consultez Groupes de paramètres pour Amazon RDS.

  4. Connectez-vous à la nouvelle base de données Amazon RDS en tant qu’utilisateur principal. Créez ensuite les utilisateurs requis pour prendre en charge les administrateurs, les applications et les services qui doivent accéder à l’instance de base de données. Le nom d’hôte de la base de données Amazon RDS est la valeur Point de terminaison de cette instance de base de données sans le numéro de port. Par exemple, mysampledb.123456789012.us-west-2.rds.amazonaws.com. Vous pouvez trouver la valeur du point de terminaison dans les détails de la base de données dans la console Amazon RDS.

  5. Connectez-vous à votre instance EC2 Amazon. Pour plus d’informations, consultez Connexion à votre instance pour les instances Linux dans le Guide de l’utilisateur Amazon Elastic Compute Cloud.

  6. Connectez-vous à votre base de données Amazon RDS comme hôte distant depuis votre instance Amazon EC2 à l’aide de la commande mysql. Voici un exemple de commande :

    mysql -h host_name -P 3306 -u db_master_user -p

    host_name est le point de terminaison de la base de données Amazon RDS.

  7. À l’invite mysql, exécutez la commande source et transmettez-lui le nom du fichier de vidage de votre base de données. Cette commande charge les données dans l’instance de base de données Amazon RDS.

    • Pour le format SQL, utilisez la commande suivante :

      mysql> source backup.sql;
    • Pour le format texte délimité, créez d’abord la base de données, s’il ne s’agit pas de la base de données par défaut que vous avez créée lors de la configuration de la base de données Amazon RDS.

      mysql> create database database_name; mysql> use database_name;

      Créez ensuite les tables.

      mysql> source table1.sql mysql> source table2.sql etc...

      Enfin, importez les données.

      mysql> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; mysql> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; etc...

      Pour améliorer les performances, vous pouvez exécuter ces opérations en parallèle à partir de plusieurs connexions de telle sorte que l’ensemble de vos tables soit créé et chargé simultanément.

      Note

      Si vous avez utilisé des options de mise en forme des données avec mysqldump lorsque vous avez initialement vidé la table, assurez-vous d’utiliser les mêmes options avec LOAD DATA LOCAL INFILE pour garantir une interprétation correcte du contenu du fichier de données.

  8. Exécutez une simple requête SELECT sur l’une ou les deux tables de la base de données importée afin de vérifier que l’importation s’est déroulée avec succès.

Si vous n’avez plus besoin de l’instance Amazon EC2 utilisée dans cette procédure, résiliez l’instance EC2 pour réduire votre utilisation des ressources AWS. Pour mettre fin à une instance EC2, consultez Terminer une instance dans le Guide de l’utilisateur Amazon Elastic Compute Cloud.

Tâche 4 : Répliquer les données de votre base de données externe vers votre nouvelle base de données Amazon RDS

Votre base de données source a probablement été mise à jour pendant la copie et le transfert des données vers la base de données MySQL. Vous pouvez ainsi utiliser la réplication pour maintenir la base de données copiée à jour par rapport à la base de données source.

Flux de travail qui montre la réplication des données de la base de données externe MySQL vers la base de données sur Amazon RDS.

Les autorisations requises pour démarrer la réplication sur une base de données Amazon RDS sont restreintes et ne sont pas disponibles pour votre utilisateur principal Amazon RDS. Vous devez donc utiliser la procédure stockée Amazon RDS appropriée pour votre version de moteur majeure :

Pour démarrer la réplication

Dans la Tâche 1, lorsque vous avez défini les options de réplication, vous avez activé la journalisation binaire et défini un ID de serveur unique pour votre base de données source. À présent, vous pouvez configurer votre base de données Amazon RDS comme réplica avec votre base de données active comme instance de réplication source.

  1. Dans la console Amazon RDS, ajoutez l’adresse IP du serveur qui héberge la base de données source au groupe de sécurité VPC de la base de données Amazon RDS. Pour plus d’informations sur la configuration d’un groupe de sécurité VPC, consultez Configuration de règles de groupe de sécurité dans le Guide de l’utilisateur Amazon Virtual Private Cloud.

    Il se peut aussi que vous ayez besoin de configurer votre réseau local pour autoriser les connexions à partir de l’adresse IP de votre base de données Amazon RDS, de telle sorte qu’elle puisse communiquer avec votre instance source. Pour obtenir l’adresse IP de la base de données Amazon RDS, utilisez la commande host :

    host host_name

    host_name est le nom DNS du point de terminaison de la base de données Amazon RDS, par exemple myinstance.123456789012.us-east-1.rds.amazonaws.com. Vous pouvez trouver la valeur du point de terminaison dans les détails de l’instance de base de données dans la console Amazon RDS.

  2. A l’aide du client de votre choix, connectez-vous à l’instance source et créez un utilisateur à utiliser pour la réplication. Ce compte est utilisé exclusivement pour la réplication et doit être limité à votre domaine pour améliorer la sécurité. Voici un exemple de commande :

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
    Note

    Spécifiez des informations d’identification autres que celles affichées ici, en tant que bonne pratique de sécurité.

  3. Pour l’instance source, attribuez les privilèges REPLICATION CLIENT et REPLICATION SLAVE à votre utilisateur de réplication. Par exemple, pour accorder les privilèges REPLICATION CLIENT et REPLICATION SLAVE sur toutes les bases de données à l’utilisateur « repl_user » de votre domaine, émettez la commande suivante :

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  4. Transformez la base de données Amazon RDS en réplica. Connectez-vous à la base de données Amazon RDS en tant qu’utilisateur principal et identifiez la base de données source comme instance de réplication source à l’aide de la procédure stockée Amazon RDS appropriée.

    Si vous avez un fichier de sauvegarde au format SQL, utilisez le nom et la position du fichier journal maître que vous avez déterminés à l’étape 4. Si vous avez utilisé le format texte délimité, utilisez le nom et la position que vous avez déterminés lors de la création des fichiers de sauvegarde. Les commandes suivantes sont des exemples :

    MySQL versions 8.4 et ultérieures

    CALL mysql.rds_set_external_source ('myserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);

    MySQL 8.0 et versions antérieures

    CALL mysql.rds_set_external_master ('myserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);
    Note

    Spécifiez des informations d’identification autres que celles affichées ici, en tant que bonne pratique de sécurité.

  5. Pour démarrer la réplication sur la base de données Amazon RDS, exécutez la commande suivante qui utilise la procédure stockée mysql.rds_start_replication :

    CALL mysql.rds_start_replication;
  6. Sur la base de données Amazon RDS, exécutez la commande SHOW REPLICA STATUS pour déterminer quand le réplica est à jour avec l’instance de réplication source. Les résultats de la commande SHOW REPLICA STATUS incluent le champ Seconds_Behind_Master. Lorsque le champ Seconds_Behind_Master renvoie 0, le réplica est à jour avec l’instance de réplication source.

    Note

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

  7. Une fois que la base de données Amazon RDS est à jour, activez les sauvegardes automatiques de façon à pouvoir restaurer la base de données si nécessaire. Vous pouvez activer ou modifier les sauvegardes automatiques de votre base de données Amazon RDS à l’aide de la console Amazon RDS. Pour plus d’informations, consultez Présentation des sauvegardes.

Tâche 5 : Rediriger votre application active vers votre instance Amazon RDS

Une fois que la base de données MySQL est à jour avec l’instance de réplication source, vous pouvez mettre à jour votre application active et utiliser l’instance Amazon RDS.

Flux de travail qui montre l’arrêt de la réplication et la direction de l’application active vers la base de données sur Amazon RDS.

Pour rediriger votre application active vers votre base de données MySQL et arrêter la réplication

  1. Pour ajouter le groupe de sécurité VPC pour la base de données Amazon RDS, ajoutez l’adresse IP du serveur qui héberge l’application. Pour plus d’informations sur la modification d’un groupe de sécurité VPC, consultez Configuration de règles de groupe de sécurité dans le Guide de l’utilisateur Amazon Virtual Private Cloud.

  2. Vérifiez que le champ Seconds_Behind_Master de la commande SHOW REPLICA STATUS a pour résultat 0, valeur indiquant que le réplica est à jour avec l’instance de réplication source.

    SHOW REPLICA STATUS;
    Note

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

  3. Fermez toutes les connexions à la source une fois leurs transactions terminées.

  4. Mettez à jour votre application pour utiliser la base de données Amazon RDS. Cette mise à jour implique généralement de modifier les paramètres de connexion pour identifier le nom d'hôte et le port de la base de données Amazon RDS, le compte utilisateur et le mot de passe avec lesquels se connecter, et la base de données à utiliser.

  5. Connectez-vous à l’instance de base de données.

    Pour un cluster de bases de données multi-AZ, connectez-vous à l'instance de base de données d'écriture.

  6. Arrêtez la réplication pour l’instance Amazon RDS en exécutant la commande suivante qui utilise la procédure stockée mysql.rds_stop_replication :

    CALL mysql.rds_stop_replication;
  7. Réinitialisez la configuration de réplication de telle sorte que cette instance ne soit plus identifiée comme un réplica en utilisant la procédure stockée Amazon RDS appropriée sur votre base de données Amazon RDS :

    MySQL versions 8.4 et ultérieures

    CALL mysql.rds_reset_external_source;

    MySQL 8.0 et versions antérieures

    CALL mysql.rds_reset_external_master;
  8. Activez des fonctions Amazon RDS supplémentaires, telles que la prise en charge Multi-AZ et les réplicas en lecture. Pour plus d’informations, consultez Configuration et gestion d’un déploiement multi-AZ pour Amazon RDS et Utilisation des réplicas en lecture d’instance de base de données.