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.
Dans certains cas, vous pouvez avoir besoin d'importer des données d'une base de données MariaDB ou MySQL externe qui prend en charge une application en direct vers une instance de base de données MariaDB ou MySQL, ou un cluster de bases de données multi-AZ 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. À l'aide de cette procédure, vous pouvez réduire le coût de l'importation en réduisant la quantité de données transmises sur le réseau AWS.
Dans cette procédure, vous transférez une copie des données de votre base de données vers une EC2 instance Amazon et vous importez les données dans une nouvelle base de données Amazon RDS. Vous utilisez ensuite la réplication pour intégrer la base de données Amazon RDS up-to-date à votre instance externe active, avant de rediriger votre application vers la base de données Amazon RDS. Configurez la réplication MariaDB en fonction des identificateurs de transaction globaux GTIDs () si l'instance externe est MariaDB 10.0.24 ou supérieure et que l'instance cible est RDS pour MariaDB. Sinon, configurez la réplication en fonction des coordonnées des journaux binaires. Nous recommandons la réplication GTID si votre base de données externe la prend en charge, car la réplication GTID est une méthode plus fiable. Pour plus d'informations, consultez Identificateurs de transaction mondiaux
Note
Si vous souhaitez importer des données dans une instance de base de données 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 de plus amples informations, veuillez consulter Restauration d'une sauvegarde dans une SQL instance de base de données Amazon RDS for My.

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 MariaDB ou RDS for MySQL avec un temps d'arrêt minimal consiste à créer une copie des données sources.

Vous pouvez utiliser l'utilitaire mysqldump pour créer une sauvegarde de la 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 mettre en balance 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 sur le choix d'un format mysqldump et le chargement des données, veuillez consulter Utilisation de mysqldump pour les sauvegardes
Avant de commencer l'opération de sauvegarde, assurez-vous de définir les options de réplication sur la base de données MariaDB ou 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.
Note
Utilisez l'option --single-transaction
avec mysqldump, car elle permet de sauvegarder un état cohérent de la base de données. Pour garantir la validité du fichier de vidage, n'exécutez pas d'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
et information_schema
. L'utilitaire mysqldump exclut ces schémas par défaut.
Pour migrer les utilisateurs et les privilèges, pensez à utiliser un outil qui génère le langage de contrôle des données (DCL) pour les recréer, tel que l'pt-show-grants
Pour définir les options de réplication
-
Modifiez le fichier
my.cnf
(qui se trouve généralement sous/etc
).sudo vi /etc/my.cnf
Ajoutez les options
log_bin
etserver_id
à la section[mysqld]
. L'optionlog_bin
fournit un identifiant de nom de fichier pour les fichiers journaux binaires. L'optionserver_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 fichiermy.cnf
.[mysqld] log-bin=mysql-bin server-id=1
Pour plus d'informations, veuillez consulter la documentation MySQL
. -
Pour la réplication avec un cluster de bases de données multi-AZ, définissez les paramètre
ENFORCE_GTID_CONSISTENCY
etGTID_MODE
surON
.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.
-
Redémarrez le service
mysql
.sudo service mysqld restart
Pour créer une copie de sauvegarde de votre base de données existante
-
Créez une sauvegarde de vos données à l'aide de l'utilitaire mysqldump, en spécifiant soit le format SQL, soit le format texte délimité.
Spécifier
--master-data=2
pour pouvoir créer un fichier de sauvegarde qui peut être utilisé pour démarrer la réplication entre les serveurs. Pour plus d'informations, veuillez consulter la documentation mysqldump. Pour améliorer les performances et assurer l'intégrité des données, utilisez les options
--order-by-primary
et--single-transaction
de 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, veuillez consulter Création d'un instantané de vidage avec mysqldumpdans 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.
Dans Linux, macOS, ou Unix:
sudo mysqldump \ --databases
database_name
\ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -ulocal_user
\ -ppassword
Note
Spécifiez des informations d'identification autres que celles affichées ici, en tant que bonne pratique de sécurité.
Dans Windows:
mysqldump ^ --databases
database_name
^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -ulocal_user
^ -ppassword
Note
Spécifiez des informations d'identification autres que celles affichées ici, en tant que bonne pratique de sécurité.
-
Pour produire une sortie à texte délimité, utilisez la commande suivante.
Dans 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
Dans 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
Spécifiez des informations d'identification autres que celles affichées ici, en tant que bonne pratique de sécurité.
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 vous exécutez mysqldump. Pour ce faire, incluez les arguments suivants dans votre commande mysqldump :
--routines=0 --triggers=0 --events=0
.Lors de l'utilisation du format texte délimité, un commentaire
CHANGE MASTER TO
est retourné quand vous exécutez mysqldump. Ce commentaire contient le nom du fichier journal maître et son emplacement. Si l'instance externe est autre que MariaDB version 10.0.24 ou version ultérieure, notez les valeurs pourMASTER_LOG_FILE
etMASTER_LOG_POS
. Vous avez besoin de ces valeurs lors de la configuration de la réplication.-- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
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. Si l'instance externe est MariaDB version 10.0.24 ou ultérieure, vous pouvez obtenir l'identifiant de transaction global à l'étape suivante.
-
-
Si l'instance externe que vous utilisez est MariaDB version 10.0.24 ou ultérieure, vous utilisez la réplication basée sur l'identifiant de transaction global. Exécutez
SHOW MASTER STATUS
sur l'instance MariaDB externe pour obtenir le nom du fichier journal binaire et son emplacement, puis convertissez-les en un identifiant de transaction global en exécutantBINLOG_GTID_POS
sur l'instance MariaDB externe.SELECT BINLOG_GTID_POS('
binary log file name
',binary log file position
);Notez l'identifiant de transaction global retourné, vous en aurez besoin pour configurer la réplication.
-
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 ces informations pour déterminer la taille d'une EC2 instance Amazon à 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
-
Créez une EC2 instance Amazon et copiez la base de données compressée
La copie de votre fichier de sauvegarde de base de données compressé sur une EC2 instance Amazon nécessite moins de ressources réseau que la copie directe de données non compressées entre des instances de base de données. Une fois que vos données sont dans Amazon EC2, vous pouvez les copier directement dans votre base de données MariaDB ou MySQL. Pour que vous puissiez économiser sur le coût des ressources réseau, votre EC2 instance Amazon doit se trouver dans la même AWS région que votre instance de base de données Amazon RDS. Le fait que l' EC2 instance Amazon se trouve dans la même AWS région que votre base de données Amazon RDS réduit également la latence du réseau lors de l'importation.

Pour créer une EC2 instance Amazon et copier vos données
-
Dans l' Région AWS endroit où vous prévoyez de créer la base de données 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 de gestion Amazon VPCpour créer et gérer VPCs des sous-réseaux et des groupes de sécurité. Pour plus d'informations, consultez Démarrez avec Amazon VPC dans le Guide de démarrage Amazon Virtual Private Cloud. -
Ouvrez la console EC2 de gestion Amazon
et choisissez la AWS région qui doit contenir à la fois votre EC2 instance Amazon et votre base de données Amazon RDS. Lancez une EC2 instance Amazon à 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 en savoir plus sur EC2 les instances Amazon, consultez Getting started with Amazon EC2 Linux instances dans le guide de l'utilisateur Amazon Elastic Compute Cloud pour Linux. -
Pour vous connecter à votre base de données Amazon RDS depuis votre EC2 instance Amazon, modifiez votre groupe de sécurité VPC. Ajoutez une règle entrante spécifiant l'adresse IP privée de votre EC2 instance. Vous trouverez l'adresse IP privée dans l'onglet Détails du volet Instance de la fenêtre de EC2 console. Pour modifier le groupe de sécurité VPC et ajouter une règle entrante, choisissez Security Groups dans le volet de navigation de la EC2 console, choisissez votre groupe de sécurité, puis ajoutez une règle entrante pour MySQL ou Aurora 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 la page Ajout et suppression de règles dans le Guide de l'utilisateur Amazon VPC.
-
Copiez le fichier de sauvegarde de votre base de données compressée depuis votre système local vers votre EC2 instance Amazon.
chmod
Utilisez-le si nécessaire pour vous assurer que vous disposez d'une autorisation d'écriture pour le répertoire cible de l' EC2 instance Amazon. Vous pouvez utiliserscp
ou un client SSH pour copier le fichier. Voici un exemple.scp -r -i
key pair
.pem backup.sql.gz ec2-user@EC2 DNS
:/target_directory
/backup.sql.gzImportant
Assurez-vous de copier les données sensibles à l'aide d'un protocole de transfert réseau sécurisé.
-
Connectez-vous à votre EC2 instance Amazon et installez les dernières mises à jour et les outils client MySQL à l'aide des commandes suivantes.
sudo yum update -y sudo yum install mysql -y
Pour plus d'informations, consultez Comment vous connecter à votre instance dans le Guide de l'utilisateur Amazon Elastic Compute Cloud pour Linux.
Important
Cet exemple installe le client MySQL sur une Amazon Machine Image (AMI) pour une distribution Amazon Linux. Pour installer le client MySQL sur une autre distribution, comme Ubuntu ou Red Hat Enterprise Linux, cet exemple ne fonctionne pas. Pour plus d'informations sur l'installation de MySQL, consultez la section Installation et mise à niveau de MySQL
dans la documentation MySQL. -
Lorsque vous êtes connecté à votre EC2 instance Amazon, décompressez le fichier de sauvegarde de votre base de données. Voici quelques 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
-
Créez une base de données MySQL ou MariaDB et importez des données depuis votre instance Amazon EC2
En créant une instance de base de données MariaDB, une instance de base de données MySQL ou un cluster de base de données MySQL Multi-AZ dans la même AWS région que votre instance EC2 Amazon, vous pouvez importer le fichier de sauvegarde de base EC2 de données plus rapidement que sur Internet.

Pour créer une base de données MariaDB ou MySQL et importer vos données
-
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 MariaDB ou MySQL. Pour de plus amples informations, veuillez consulter Classes d'instances de base de données .
-
Créez une instance de base de données ou un cluster de base de données multi-AZ dans la AWS région qui contient votre EC2 instance Amazon.
Pour créer un cluster de bases de données multi-AZ MySQL, suivez les instructions dans Création d'un cluster de base de données multi-AZ pour Amazon RDS.
Pour créer une instance de base de données MariaDB ou MySQL, suivez les instructions dans Création d'une RDS instance de base de données Amazon 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, comme suit :
-
Si votre instance source est MySQL 5.5.x, l'instance de base de données Amazon RDS doit être MySQL.
-
Si votre instance source est MySQL 5.6.x ou 5.7.x, l'instance de base de données Amazon RDS doit être MySQL ou MariaDB.
-
Si votre instance source est MySQL 8.0.x, l'instance de base de données Amazon RDS doit être MySQL 8.0.x.
-
Si votre instance source est MySQL 8.4.x, l'instance de base de données Amazon RDS doit être MySQL 8.4.x.
-
Si votre instance source est MariaDB 5.5 ou version ultérieure, l'instance de base de données Amazon RDS doit être MariaDB.
-
-
Spécifiez le même cloud privé virtuel (VPC) et le même groupe de sécurité VPC que pour votre instance Amazon. EC2 Cette approche garantit que votre EC2 instance Amazon et votre instance Amazon RDS sont visibles l'une pour 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 ci-après, 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.
-
-
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).
-
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. Le nom d'hôte de la base de données Amazon RDS est la valeur Endpoint (Point de terminaison) de cette instance 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 de gestion Amazon RDS. -
Connectez-vous à votre EC2 instance Amazon. Pour plus d'informations, consultez Comment vous connecter à votre instance dans le Guide de l'utilisateur Amazon Elastic Compute Cloud pour Linux.
-
Connectez-vous à votre base de données Amazon RDS en tant qu'hôte distant depuis votre EC2 instance Amazon à l'aide de la
mysql
commande. Voici un exemple.mysql -h
host_name
-P 3306 -udb_master_user
-pLe nom d'hôte est le point de terminaison de la base de données Amazon RDS.
-
Dans l'invite de commande
mysql
, exécutez la commandesource
et transmettez-lui le nom du fichier de vidage de votre base de données pour charger les données dans l'instance de bases 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> usedatabase_name
;Créez ensuite les tables.
mysql> source
table1
.sql mysql> sourcetable2
.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 formatage de données avec mysqldump lors du vidage initial de la table, veillez à utiliser les mêmes options
LOAD DATA LOCAL INFILE
pour garantir une interprétation correcte du contenu du fichier de données.
-
-
Exécutez une
SELECT
requête simple sur une ou deux des tables de la base de données importée pour vérifier que l'importation a réussi.
Si vous n'avez plus besoin de l' EC2 instance Amazon utilisée dans cette procédure, mettez-la hors service EC2 afin de réduire votre consommation de AWS ressources. Pour mettre fin à une EC2 instance, consultez la section Résiliation d'une instance dans le guide de EC2 l'utilisateur Amazon.
Répliquer entre votre base de données externe et la 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 MariaDB ou MySQL. Ainsi, vous pouvez utiliser la réplication pour intégrer la base de données up-to-date copiée à la base de données source.

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. Pour cette raison, assurez-vous d'utiliser la commande Amazon RDS, ou la commande pour configurer la réplication, et la mysql.rds_set_external_master_gtid mysql.rds_start_replication commande pour démarrer la réplication entre votre base de données active et votre base de données Amazon RDS.
Pour démarrer la réplication
Précédemment, vous avez activé la journalisation binaire et défini un ID serveur unique pour votre base de données source. Maintenant, 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.
-
Dans la console de gestion 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 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.
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
rds_db_endpoint
Le nom d'hôte 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 dans Amazon RDS Management Console. -
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.
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é.
-
Pour l'instance source, 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';
-
Si vous avez utilisé le format SQL pour créer votre fichier de sauvegarde et que l'instance externe n'est pas MariaDB 10.0.24 ou version ultérieure, examinez le contenu de ce fichier.
cat backup.sql
Le fichier inclut un commentaire
CHANGE MASTER TO
qui contient le nom du fichier journal maître et son emplacement. Ce commentaire est inclus dans le fichier de sauvegarde quand vous utilisez l'option--master-data
avec mysqldump. Notez les valeurs pourMASTER_LOG_FILE
etMASTER_LOG_POS
.-- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
Si vous avez utilisé le format texte délimité pour créer votre fichier de sauvegarde et que l'instance externe n'est pas MariaDB 10.0.24 ou version ultérieure, vous devez avoir déjà les coordonnées du journal binaire de l'étape 1 de la procédure « Pour créer une copie de sauvegarde de votre base de données existante » dans cette rubrique.
Si l'instance externe est MariaDB 10.0.24 ou version ultérieure, vous devez déjà avoir l'identifiant de transaction global à partir duquel démarrer la réplication de l'étape 2 de la procédure « Pour créer une copie de sauvegarde de votre base de données existante » dans cette rubrique.
-
Transformez la base de données Amazon RDS en réplica. Si l'instance externe n'est pas MariaDB 10.0.24 ou version ultérieure, connectez-vous à la base de données Amazon RDS en tant qu'utilisateur principal et identifiez la base de données source en tant qu'instance de réplication source à l'aide de la commande or. 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 dans l'étape précédente. Vous pouvez également utiliser le nom et la position que vous avez déterminés lors de la création des fichiers de sauvegarde si vous avez utilisé le format texte délimité. Les commandes suivantes sont des exemples.
MySQL 8.4 et versions supérieures
CALL mysql.rds_set_external_source ('myserver.mydomain.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.000031', 107, 1);MariaDB et 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é.
Si l'instance externe est de version MariaDB 10.0.24 ou ultérieure, 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 commande mysql.rds_set_external_master_gtid. Utilisez l'identifiant global de base de données défini à l'étape 2 de la procédure de la section « Pour créer une copie de sauvegarde de votre base de données existante » dans cette rubrique. Voici un exemple.
CALL mysql.rds_set_external_master_gtid ('
source_server_ip_address
', 3306, 'ReplicationUser', 'password
', 'GTID
', 1);source_server_ip_address
est l'adresse IP de l'instance de réplication source. Une adresse DNS EC2 privée n'est actuellement pas prise en charge.Note
Spécifiez des informations d'identification autres que celles affichées ici, en tant que bonne pratique de sécurité.
-
Sur la base de données Amazon RDS, émettez la commande mysql.rds_start_replication pour démarrer la réplication.
CALL mysql.rds_start_replication;
-
Sur la base de données Amazon RDS, exécutez la commande SHOW REPLICA STATUS
pour déterminer à quel moment la réplique se trouve up-to-date dans l'instance de réplication source. Les résultats de la commande SHOW REPLICA STATUS
incluent le champSeconds_Behind_Master
. Lorsque leSeconds_Behind_Master
champ renvoie 0, la réplique correspond up-to-date à l'instance de réplication source.Note
Les versions précédentes de MySQL utilisaient
SHOW SLAVE STATUS
à la place deSHOW REPLICA STATUS
. Si vous utilisez une version de MySQL antérieure à la version 8.0.23, utilisez alorsSHOW SLAVE STATUS
.Pour une instance de base de données MariaDB 10.5, 10.6 ou 10.11, exécutez la procédure mysql.rds_replica_status à la place de la commande MySQL.
-
Une fois la base de données Amazon RDS up-to-date installée, activez les sauvegardes automatiques afin de pouvoir restaurer cette 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 de gestion Amazon RDS
. Pour de plus amples informations, veuillez consulter Présentation des sauvegardes.
Rediriger votre application active vers votre instance Amazon RDS
Une fois que la base de données MariaDB ou up-to-date MySQL est associée à l'instance de réplication source, vous pouvez désormais mettre à jour votre application live pour utiliser l'instance Amazon RDS.

Pour rediriger votre application active vers votre base de données MariaDB ou MySQL et arrêter la réplication
-
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é de VPC, consultez Groupes de sécurité pour votre VPC dans le Guide de l'utilisateur Amazon Virtual Private Cloud.
-
Vérifiez que le
Seconds_Behind_Master
champ des résultats de la commande SHOW REPLICA STATUSest égal à 0, ce qui indique que la réplique est up-to-date associée à l'instance de réplication source. SHOW REPLICA STATUS;
Note
Les versions précédentes de MySQL utilisaient
SHOW SLAVE STATUS
à la place deSHOW REPLICA STATUS
. Si vous utilisez une version de MySQL antérieure à la version 8.0.23, utilisez alorsSHOW SLAVE STATUS
.Pour une instance de base de données MariaDB 10.5, 10.6 ou 10.11, exécutez la procédure mysql.rds_replica_status à la place de la commande MySQL.
-
Fermez toutes les connexions à la source une fois leurs transactions terminées.
-
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.
-
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.
-
Arrêtez la réplication pour l'instance Amazon RDS à l'aide de la commande mysql.rds_stop_replication.
CALL mysql.rds_stop_replication;
-
Exécutez la commande or sur votre base de données Amazon RDS pour réinitialiser la configuration de réplication afin que cette instance ne soit plus identifiée comme une réplique.
MySQL 8.4 et versions supérieures
CALL mysql.rds_reset_external_source;
MariaDB et MySQL 8.0 et versions antérieures
CALL mysql.rds_reset_external_master;
-
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.