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
-
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;
-
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écuterSELECT @@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 globauxdans la documentation MariaDB. -
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 \ -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.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 commandemysql
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 exemplemyinstance.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. -
Transformez l'instance source MariaDB en instance accessible de nouveau en écriture.
mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
-
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.
-
-
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é.
-
Pour l'instance MariaDB 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 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é.
-
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;