Configuration d'une réplication de position de fichier journal binaire 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 de position de fichier journal binaire avec une instance source externe

Vous pouvez configurer la réplication entre une instance de base de données RDS for My SQL ou MariaDB et une instance My SQL ou MariaDB externe à Amazon à RDS l'aide de la réplication de fichiers journaux binaires.

Avant de commencer

Vous pouvez configurer la réplication en utilisant la position du fichier journal binaire des transactions répliquées.

Les autorisations requises pour démarrer la réplication sur une RDS instance de base de données Amazon sont limitées et ne sont pas accessibles à votre utilisateur RDS principal Amazon. Pour cette raison, assurez-vous d'utiliser les mysql.rds_start_replication commandes Amazon RDS ou et pour configurer la réplication entre votre base de données active et votre base de RDS données Amazon.

Pour définir le format de journalisation binaire pour une base de données My SQL ou MariaDB, mettez à jour le paramètre. binlog_format Si votre instance de base de données utilise le groupe de paramètres d'instance de base de données par défaut, créez un nouveau groupe de paramètres de base de données pour modifier le binlog_format paramètre. Dans MariaDB et SQL My 8.0 et versions antérieuresbinlog_format, la valeur par défaut est. MIXED Cependant, vous pouvez également définir binlog_format sur ROW ou STATEMENT si vous avez besoin d'un format de journaux binaires (binlog) spécifique. Redémarrez votre instance de base de données pour que les modifications prennent effet. Dans My SQL 8.4 et versions supérieures, la binlog_format valeur par défaut est. ROW

Pour plus d'informations sur la configuration du paramètre binlog_format, consultez la section Configuration de la journalisation SQL binaire for My. Pour plus d'informations sur les implications des différents types de SQL réplication My, consultez la section Avantages et inconvénients de la réplication basée sur des instructions et basée sur des lignes dans la documentation My. SQL

Configuration d'une réplication de position de fichier journal binaire avec une instance source externe

Suivez ces directives lorsque vous configurez une instance source externe et une réplique sur Amazon RDS :

  • Surveillez les événements de basculement pour l'RDSinstance de base de données Amazon qui est votre réplique. 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 Utilisation des notifications d'RDSévénements Amazon.

  • 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. Cette maintenance garantit que vous pouvez restaurer votre instance source en cas de défaillance.

  • Activez les sauvegardes automatisées sur votre RDS instance de base de données Amazon. 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 les point-in-time restaurations, consultezSauvegarde, restauration et exportation de données.

Pour configurer une réplication de position de fichier journal binaire avec une instance source externe
  1. Rendez l'instance source My SQL ou MariaDB en lecture seule.

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Exécutez la SHOW MASTER STATUS commande sur l'instance source My SQL ou MariaDB pour déterminer l'emplacement du journal binaire.

    Vous obtenez une sortie similaire à ce qui suit.

    File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
  3. Copiez la base de données de l'instance externe vers l'instance de base de RDS données Amazon à l'aide demysqldump. 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 Amazon RDS MariaDB ou SQL My avec réduction des temps d'arrêt.

    Dans Linux, macOS, 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.

    Pour spécifier le nom d'hôte, le nom d'utilisateur, le port et le mot de passe pour vous connecter à votre RDS instance de base de données Amazon --host--user (-u), utilisez les -p options, --port et dans la mysql commande. Le nom d'hôte est le nom du service de nom de domaine (DNS) du point de terminaison de l'RDSinstance de base de données Amazon, par exemplemyinstance.123456789012.us-east-1.rds.amazonaws.com. Vous pouvez trouver la valeur du point de terminaison dans la AWS Management Console au niveau des détails de l'instance.

  4. Rendez l'instance source My SQL ou MariaDB inscriptible à nouveau.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;

    Pour plus d'informations sur la création de sauvegardes destinées à la réplication, consultez la section Ma SQL documentation.

  5. Dans le AWS Management Console, ajoutez l'adresse IP du serveur qui héberge la base de données externe au groupe de sécurité du cloud privé virtuel (VPC) pour l'RDSinstance de base de données Amazon. Pour plus d'informations sur la modification d'un groupe VPC de sécurité, consultez la section Groupes de sécurité correspondants VPC dans le guide de l'utilisateur d'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 également configurer votre réseau local pour autoriser les connexions à partir de l'adresse IP de votre RDS instance de base de données Amazon. Vous procédez ainsi pour que votre réseau local puisse communiquer avec votre instance externe My SQL ou MariaDB. Pour trouver l'adresse IP de l'RDSinstance de base de données Amazon, utilisez la host commande.

    host db_instance_endpoint

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

  6. En utilisant le client de votre choix, connectez-vous à l'instance externe et créez un utilisateur à utiliser pour la réplication. Utilisez ce compte exclusivement pour la réplication et limitez-le à 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 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. Faites de l'RDSinstance de base de données Amazon la réplique. Pour ce faire, connectez-vous d'abord à l'RDSinstance de base de données Amazon en tant qu'utilisateur principal. Identifiez ensuite la base de données externe My SQL ou MariaDB comme instance source à l'aide de la commande or. Utilisez le nom et la position du fichier journal maître que vous avez déterminés à l'étape 2. Les commandes suivantes sont des exemples.

    Mon SQL 8,4

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

    MariaDB et My 8.0 et 5.7 SQL

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

    Sur RDS MySQL, vous pouvez choisir d'utiliser la réplication différée en exécutant la procédure mysql.rds_set_external_source_with_delay (pour mes versions majeures 8.4 et supérieures) RDS SQL ou la procédure mysql.rds_set_external_master_with_delay (pour MariaDB et pour My major versions 8.0 et antérieures) RDS RDS SQL stockée à la place. On RDS for MySQL, l'une des raisons d'utiliser la réplication différée est d'activer la reprise après sinistre avec la procédure stockée. Actuellement, RDS MariaDB prend en charge la réplication différée mais ne prend pas en charge la procédure. mysql.rds_start_replication_until

  9. Sur l'RDSinstance de base de données Amazon, émettez la mysql.rds_start_replication commande pour démarrer la réplication.

    CALL mysql.rds_start_replication;