Configuration d'une réplication basée sur GTID avec une instance source externe - 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.

Configuration d'une réplication basée sur GTID avec une instance source externe

Vous pouvez configurer la réplication basée sur les identificateurs de transaction globaux (GTID) d'une instance MariaDB externe version 10.0.24 ou ultérieure dans une instance de base de données RDS for MariaDB. Suivez ces instructions lorsque vous configurez une instance source externe et un réplica sur Amazon RDS :

  • Surveillez les événements de basculement de l'instance de base de données RDS for MariaDB qui constitue votre réplica. En cas de basculement, l'instance de base de données qui est votre réplica peut alors être recréée sur un nouvel hôte avec une autre adresse réseau. Pour plus d'informations sur la surveillance des événements de basculement, consultez Utiliser la notification d'événements d'Amazon RDS.

  • Tenez à jour les journaux binaires sur votre instance source, jusqu'à ce que vous ayez vérifié qu'ils ont été appliqués au réplica. Cela garantit que vous pouvez restaurer votre instance source en cas de défaillance.

  • Activez les sauvegardes automatiques sur votre instance de base de données MariaDB sur Amazon RDS. L'activation des sauvegardes automatiques garantit que vous pouvez restaurer votre réplica sur un instant donné si vous devez resynchroniser votre instance source et votre réplica. Pour plus d'informations sur les sauvegardes et la restauration à un instant dans le passé, consultez Sauvegarde, restauration et exportation de données.

Note

Les autorisations requises pour démarrer la réplication sur une instance de base de données MariaDB sont restreintes et ne sont pas disponibles pour votre utilisateur principal Amazon RDS. Pour cette raison, vous devez utiliser les commandes Amazon RDS, mysql.rds_set_external_master_gtid et mysql.rds_start_replication pour configurer la réplication entre votre base de données active et votre base de données RDS for MariaDB.

Pour commencer la réplication entre une instance source externe et une instance de base de données MariaDB sur Amazon RDS, appliquez la procédure suivante.

Pour démarrer la réplication
  1. Passez l'instance de base de données source MariaDB en lecture seule :

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Obtenez le GTID actuel de l'instance MariaDB externe. Vous pouvez faire cela en utilisant mysql ou l'éditeur de requête de votre choix pour exécuter SELECT @@gtid_current_pos;.

    Le GTID est formaté comme suit : <domain-id>-<server-id>-<sequence-id>. Un GTID type ressemble un peu à ceci : 0-1234510749-1728. Pour plus d'informations sur les GTID et leurs composants, consultez ID de transaction globaux dans la documentation MariaDB.

  3. Copiez la base de données de l'instance externe MariaDB vers l'instance de base de données MariaDB à l'aide de mysqldump. Pour les bases de données très volumineuses, il se peut que vous vouliez utiliser la procédure décrite dans Importation de données vers une base de données MariaDB ou MySQL Amazon RDS avec un temps d'arrêt réduit.

    Pour LinuxmacOS, ou Unix :

    mysqldump \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u local_user \ -plocal_password | mysql \ --host=hostname \ --port=3306 \ -u RDS_user_name \ -pRDS_password

    Dans Windows :

    mysqldump ^ --databases database_name ^ --single-transaction ^ --compress ^ --order-by-primary \ -u local_user \ -plocal_password | mysql ^ --host=hostname ^ --port=3306 ^ -u RDS_user_name ^ -pRDS_password
    Note

    Veillez bien à ce qu'il n'y ait pas d'espace entre l'option -p et le mot de passe saisi.

    Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

    Utilisez les options --host, --user (-u), --port et -p de la commande mysql pour spécifier le nom d'hôte, le nom d'utilisateur, le port et le mot de passe pour vous connecter à votre instance de base de données MariaDB. Le nom d'hôte est le nom DNS du point de terminaison de l'instance de base de données MariaDB, 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 dans Amazon RDS Management Console.

  4. Transformez l'instance source MariaDB en instance accessible de nouveau en écriture.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
  5. Dans la console de gestion Amazon RDS, ajoutez l'adresse IP du serveur qui héberge la base de données MariaDB externe au groupe de sécurité VPC de l'instance de base de données MariaDB. Pour plus d'informations sur la modification d'un groupe de sécurité VPC, accédez à Groupes de sécurité pour votre VPC dans le Guide de l'utilisateur Amazon Virtual Private Cloud.

    L'adresse IP peut changer lorsque les conditions suivantes sont réunies :

    • Vous utilisez une adresse IP publique pour la communication entre l'instance source externe et l'instance de base de données.

    • L'instance source externe a été arrêtée et redémarrée.

    Si ces conditions sont réunies, vérifiez l'adresse IP avant de l'ajouter.

    Vous devrez peut-être aussi configurer votre réseau local de sorte à autoriser les connexions à partir de l'adresse IP de votre instance de base de données MariaDB, pour qu'elle puisse communiquer avec votre instance MariaDB externe. Pour obtenir l'adresse IP de l'instance de base de données MariaDB, utilisez la commande host.

    host db_instance_endpoint

    Le nom d'hôte est le nom DNS du point de terminaison de l'instance de base de données MariaDB.

  6. A l'aide du client de votre choix, connectez-vous à l'instance MariaDB externe et créez un utilisateur MariaDB à 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.

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

    Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

  7. Pour l'instance MariaDB externe, 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';
  8. Transformez l'instance de base de données MariaDB en réplica. Connectez-vous à l'instance de base de données MariaDB en tant qu'utilisateur principal et, à l'aide de la commande mysql.rds_set_external_master_gtid, identifiez la base de données MariaDB externe en tant qu'instance source de réplication. Utilisez le GTID que vous avez déterminé à l'étape 2. Voici un exemple.

    CALL mysql.rds_set_external_master_gtid ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'GTID', 0);
    Note

    Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

  9. Sur l'instance de base de données MariaDB, utilisez la commande mysql.rds_start_replication pour démarrer la réplication.

    CALL mysql.rds_start_replication;