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 MySQL ou MariaDB et une instance MySQL ou MariaDB externe à Amazon RDS en utilisant la réplication de fichiers journaux binaires.
Rubriques
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 instance de base de données Amazon RDS sont restreintes et ne sont pas disponibles pour votre utilisateur principal Amazon RDS. Pour cette raison, assurez-vous d'utiliser les commandes Amazon RDS et mysql.rds_start_replication pour configurer la réplication entre votre base de données active et votre base de données Amazon RDS.
Pour définir le format de journalisation binaire pour une base de données MySQL 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 les paramètres binlog_format
. Nous vous recommandons d'utiliser le paramètre par défaut pour binlog_format
, à savoir 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.
Pour plus d'informations sur la configuration du paramètre binlog_format
, consultez la section Configuration d'RDS pour la journalisation binaire MySQL. Pour de plus amples informations sur les implications des différents types de réplication MySQL, veuillez consulter la section Advantages and Disadvantages of Statement-Based and Row-Based Replication
Note
À partir de la version 8.0.36 de RDS pour MySQL, Amazon RDS ne réplique pas la base de données. mysql
Par conséquent, si la base de données externe contient des utilisateurs dont vous avez besoin sur la réplique Amazon RDS, veillez à les créer manuellement.
Configuration d'une réplication de position de fichier journal binaire avec une instance source externe
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 Amazon RDS 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 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 automatiques sur votre instance de base de données 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 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
-
Rendez l'instance MySQL ou MariaDB source accessible en lecture seule.
mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
-
Exécutez la commande
SHOW MASTER STATUS
sur l'instance source MySQL 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 ------------------------------------
-
Copiez la base de données de l'instance externe vers l'instance de base de données Amazon RDS à 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 \ -ulocal_user
\ -plocal_password
| mysql \ --host=hostname \ --port=3306 \ -uRDS_user_name
\ -pRDS_password
Dans Windows :
mysqldump --databases
database_name
^ --single-transaction ^ --compress ^ --order-by-primary ^ -ulocal_user
^ -plocal_password
| mysql ^ --host=hostname ^ --port=3306 ^ -uRDS_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 afin de vous connecter à votre instance de base de données Amazon RDS, utilisez les options
--host
,--user (-u)
,--port
et-p
dans la commandemysql
. Le nom d'hôte est le nom DNS du point de terminaison de l'instance de base de données Amazon RDS : 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. -
Rendez l'instance source MySQL ou MariaDB à nouveau accessible en écriture.
mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
Pour plus d'informations sur la création de sauvegardes en vue de les utiliser avec la réplication, consultez la documentation MySQL
. -
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'instance de base de données Amazon RDS. Pour plus d'informations sur la modification d'un groupe de sécurité de VPC, consultez 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 pour autoriser les connexions à partir de l'adresse IP de votre instance de base de données Amazon RDS. Cela permet la communication entre votre réseau local et votre instance MySQL ou MariaDB externe. Pour obtenir l'adresse IP de l'instance de base de données Amazon RDS, 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 Amazon RDS.
-
-
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é.
-
Pour l'instance externe, attribuez les privilèges
REPLICATION CLIENT
etREPLICATION SLAVE
à votre utilisateur de réplication. Par exemple, pour accorder les privilègesREPLICATION CLIENT
etREPLICATION 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
'; -
Transformez l'instance de base de données Amazon RDS en réplica. Pour cela, connectez-vous d'abord à l'instance de base de données Amazon RDS en tant qu'utilisateur principal. Identifiez ensuite la base de données MySQL ou MariaDB externe comme instance source à l'aide de la commande . Utilisez le nom et la position du fichier journal maître que vous avez déterminés à l'étape 2. Voici un exemple.
CALL mysql.rds_set_external_master ('
mymasterserver.mydomain.com
', 3306, 'repl_user
', 'password
', 'mysql-bin-changelog.000031
',107
,0
);Note
Sur RDS for MySQL, vous pouvez décider d'utiliser la réplication retardée en exécutant à la place la procédure stockée mysql.rds_set_external_master_with_delay. Sur RDS for MySQL, 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 for MariaDB prend en charge la réplication différée, mais ne prend pas en charge la procédure
mysql.rds_start_replication_until
. -
Sur l'instance de base de données Amazon RDS, émettez la commande mysql.rds_start_replication pour démarrer la réplication.
CALL mysql.rds_start_replication;