La réplication native d'ApsaraDB RDS for MySQL vous permet de répliquer les données d'une base de données MySQL autogérée directement vers une instance RDS en utilisant la réplication MySQL standard, sans outils de migration supplémentaires ni services de transfert de données payants.
Cas d'utilisation
Migration vers le cloud avec un temps d'arrêt minimal : importez une sauvegarde complète de votre base de données autogérée, puis maintenez l'instance RDS synchronisée via la réplication jusqu'à ce que vous soyez prêt à basculer votre application.
Synchronisation hybride des données : maintenez une synchronisation continue entre votre MySQL sur site et votre instance RDS dans le cloud, par exemple lors d'une migration progressive ou dans le cadre d'une configuration de reprise après sinistre.
Réplication multicloud : répliquez les données d'une base de données MySQL hébergée chez un autre fournisseur de cloud vers une instance ApsaraDB RDS for MySQL.
Prérequis
Avant de commencer, assurez-vous que :
Version de la base de données : MySQL 5.7 (version mineure 20240930 ou ultérieure) ou MySQL 8.0 (version mineure 20250531 ou ultérieure)
Série de produits : Édition de base
Méthode de facturation : Abonnement ou paiement à l'utilisation
Région : Chine (Shanghai), Chine (Pékin), Chine (Shenzhen), Chine (Guangzhou) ou Chine (Chengdu)
La réplication native est actuellement disponible uniquement dans les régions listées ci-dessus. Si vous avez besoin de cette fonctionnalité dans d'autres régions, soumettez un ticket .
Pour utiliser une instance de réplication native Serverless native replication instance, créez d'abord une instance en paiement à l'utilisation, activez la réplication native, puis modifiez la méthode de facturation pour passer à Serverless.
Facturation
Nouvelle instance avec réplication native activée : les frais d'instance standards s'appliquent. Aucun frais supplémentaire n'est facturé pour la fonctionnalité de réplication native elle-même.
Mise à niveau d'une instance existante : aucun frais supplémentaire.
Importation de données via Object Storage Service (OSS) : les frais de stockage OSS s'appliquent pendant toute la durée de stockage du fichier de sauvegarde dans OSS.
Limitations
Limitations fonctionnelles
L'instance fonctionne en mode read-only tant que la réplication native est active.
Les mises à niveau de version majeure ne sont pas prises en charge.
La réplication entre versions majeures différentes n'est pas prise en charge. La base de données MySQL autogérée et l'instance de réplication native RDS doivent exécuter la même version majeure (par exemple, toutes deux MySQL 8.0).
La mise à niveau de la série de produits n'est pas prise en charge (par exemple, le passage de l'Édition de base à l'Édition haute disponibilité ou à l'Édition Cluster).
Le changement de VPC n'est pas pris en charge.
La récupération de bases de données et de tables n'est pas prise en charge.
Lorsque vous mettez à niveau une instance existante vers une instance de réplication native, une interruption de connexion transitoire d'environ 30 secondes peut se produire. Effectuez cette opération pendant les heures creuses et assurez-vous que votre application dispose d'un mécanisme de reconnexion.
Limitations des autorisations
Portée du compte privilégié
Certains privilèges SUPER liés à la réplication native sont accordés au compte privilégié de l'instance RDS. Seul le compte privilégié peut exécuter les commandes de réplication native telles que CHANGE MASTER TO (MySQL 5.7) ou CHANGE REPLICATION SOURCE TO (MySQL 8.0).
Liste d'autorisation des permissions de réplication
Lorsque la réplication native applique des événements de journal binaire provenant d'une source externe, elle vérifie d'abord les autorisations. Toute opération nécessitant des autorisations au-delà de la liste suivante est rejetée et interrompt la réplication :
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE,
DROP, RELOAD, PROCESS, REFERENCES, INDEX,
ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
LOCK TABLES, EXECUTE, REPLICATION SLAVE,
REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER,
EVENT, TRIGGER ON *.* TO XXX;
Limitations des bases de données système
Toutes les opérations sur les bases de données système sont ignorées pendant la réplication. Les bases de données système incluent mysql, sys, information_schema, performance_schema et __recyclebin__.
Les opérations qui modifient indirectement les bases de données système, telles queCREATE USERetGRANT, ne sont pas ignorées. Ces opérations doivent respecter la liste d'autorisation des permissions de réplication. Les instructions dépassant les autorisations accordées, commeGRANT SUPER ON *.* TO xxx;, interrompront la réplication.
Limitations GTID
ApsaraDB RDS for MySQL exige que le mode Global Transaction Identifier (GTID) soit activé et ne prend pas en charge sa désactivation. Pour répliquer depuis une base de données MySQL externe, la source doit également avoir GTID activé.
Avant de configurer la réplication, exécutez la commande suivante sur la base de données source pour vérifier l'état GTID :
SHOW VARIABLES LIKE 'gtid_mode';
Si GTID n'est pas activé, exécutez :
SET GLOBAL gtid_mode = ON;
Comportement lors de la maintenance
Lors des opérations de maintenance, telles qu'une migration entre serveurs ou une mise à niveau de version mineure, les autorisations liées aux commandes de réplication native et à la modification des paramètres sont temporairement révoquées. Le processus de réplication lui-même n'est pas affecté. Les autorisations sont restaurées automatiquement une fois la maintenance terminée.
Autorisations de réplication native
Les comptes privilégiés sur les instances de réplication native disposent d'autorisations supplémentaires non disponibles sur les instances RDS standard.
Commandes de réplication
| Commande (MySQL 5.7) | Commande (MySQL 8.0) | Description |
|---|---|---|
CHANGE MASTER TO |
CHANGE REPLICATION SOURCE TO |
Configurez la source et la position de départ pour la réplication. Consultez la documentation MySQL 5.7. |
START SLAVE |
START REPLICA |
Démarrez le processus de réplication. |
STOP SLAVE |
STOP REPLICA |
Arrêtez le processus de réplication. |
RESET SLAVE |
RESET REPLICA |
Réinitialisez l'état du réplica pour redémarrer la réplication depuis la source. |
Modification des paramètres
Les comptes privilégiés peuvent également modifier les paramètres d'exécution suivants :
`SET GLOBAL read_only = ON/OFF;` — Basculez l'instance entre le mode lecture seule (ON) et lecture/écriture (OFF).
SET SESSION sql_log_bin = ON/OFF;— Contrôlez si les instructions SQL de la session actuelle sont enregistrées dans le journal binaire.SET SESSION GTID_NEXT = "<gtid_value>";— Définissez la valeur GTID pour la prochaine transaction.
Étape 1 : Activer la réplication native
Activer la réplication native sur une nouvelle instance
Lors de la création d'une nouvelle instance ApsaraDB RDS for MySQL sur la page Standard Create, faites défiler vers le bas, développez More et activez l'option Native Replication.
Cette option n'apparaît que si la configuration de l'instance respecte les prérequis.

Activer la réplication native sur une instance existante
La mise à niveau d'une instance existante provoque une interruption de connexion transitoire d'environ 30 secondes. Effectuez cette opération pendant les heures creuses et assurez-vous que votre application dispose d'un mécanisme de reconnexion.
Accédez à la page RDS Instances, sélectionnez une région et cliquez sur l'ID de l'instance cible.
Dans le volet de navigation de gauche, cliquez sur Native Replication, puis cliquez sur Enable.
Vérifiez les informations dans la boîte de dialogue et cliquez sur OK.
Si le compte de service officiel ApsaraDB RDS ne dispose pas encore des autorisations nécessaires pour accéder à votre OSS et pour créer et attacher des interfaces réseau élastiques (ENI), cochez les cases correspondantes dans la boîte de dialogue pour accorder ces autorisations.
Étape 2 : Configurer la connectivité réseau
Avant d'importer les données, assurez-vous que la base de données MySQL autogérée peut communiquer avec l'instance RDS via le réseau.
| Scénario | Configuration | Frais |
|---|---|---|
| MySQL autogéré sur ECS dans le même VPC | La connectivité réseau est disponible par défaut. Configurez le groupe de sécurité ECS pour autoriser le trafic entrant sur le port 3306 depuis l'adresse IP de l'instance RDS. Pour obtenir l'adresse IP de l'instance RDS, connectez-vous à l'instance et exécutez SHOW VARIABLES LIKE 'report_host';. |
Aucun |
| Inter-VPC ou inter-région sur Alibaba Cloud | Utilisez une connexion d'appairage VPC ou Cloud Enterprise Network (CEN). | Les frais de connexion d'appairage VPC s'appliquent. Les instances CEN sont gratuites, mais des frais de transfert de données et de bande passante peuvent s'appliquer. |
| Centre de données sur site vers le cloud | Utilisez une passerelle VPN ou une ligne louée pour connecter votre centre de données au VPC. | Les frais varient selon la méthode. Consultez la documentation officielle pour plus de détails. |
| Autre fournisseur de cloud vers ApsaraDB RDS | Utilisez un VPN ou une ligne louée pour établir une connexion réseau inter-cloud. | Les frais varient selon la méthode. Consultez la documentation officielle pour plus de détails. |
| Réseau public (non recommandé) | Les instances de réplication native ApsaraDB RDS prennent en charge l'accès au réseau public. Cette méthode n'est pas recommandée en raison des risques de sécurité. | Les frais varient selon la méthode. |
Pour une référence complète, consultez la rubrique Connexions et mise en réseau.
Étape 3 : Importer les données complètes et configurer la réplication
Importez une sauvegarde complète de votre base de données autogérée dans RDS, puis configurez la réplication incrémentielle pour maintenir la synchronisation entre les deux bases de données.
Installer Percona XtraBackup et sauvegarder la base de données source
Installez Percona XtraBackup sur l'hôte de votre base de données autogérée.
Installation sur CentOS
Pour MySQL 5.7 :
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
Pour MySQL 8.0 :
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
Installation sur Ubuntu
Pour MySQL 5.7 :
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
Pour MySQL 8.0 :
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
XtraBackup sur Ubuntu n'inclut pas qpress. Installez-le séparément :
sudo apt-get install -y qpress
Créer la sauvegarde
Les commandes suivantes concernent les bases de données utilisant principalement le moteur InnoDB. Si votre base de données contient des tables MyISAM, utilisez plutôt la commande innobackupex.
Trois méthodes de compression sont prises en charge. Choisissez-en une :
Méthode 1 : Compression qpress par défaut
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
--compress > ./<backup_file_name>.xb
Méthode 2 : Compression QuickLZ
Nécessite la version 8.0.34-29 ou antérieure de XtraBackup. Consultez la documentation Percona XtraBackup pour plus de détails.
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
--compress > ./<backup_file_name>_qp.xb
Méthode 3 : Compression Zstandard (zstd)
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
| zstd -q - > ./<backup_file_name>.xb.zstd
Importer la sauvegarde et configurer la réplication
Deux méthodes d'importation sont disponibles. Si vous pouvez télécharger le fichier de sauvegarde vers OSS, utilisez la Méthode 1. Si votre environnement est contraint et qu'un streaming direct est préférable, utilisez la Méthode 2.
Méthode 1 : Importer un fichier de sauvegarde depuis OSS
Télécharger la sauvegarde vers un compartiment OSS
Le compartiment OSS doit se trouver dans la même région que l'instance RDS.
Installez ossutil :
yum install -y unzip
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
ossutil config
Téléchargez le fichier de sauvegarde :
ossutil -e <OSS_Endpoint> -i <your_AccessKeyId> -k <your_AccessKeySecret> cp <backup_file_name> oss://<bucket_name>/
Importer la sauvegarde dans RDS
Accédez à la page RDS Instances, sélectionnez une région et cliquez sur l'ID de l'instance.
Dans le volet de navigation de gauche, cliquez sur Native Replication.
Cliquez sur Import Full Data, configurez les paramètres et cliquez sur OK.
| Catégorie | Paramètre | Description |
|---|---|---|
| Méthode de téléchargement de la sauvegarde (obligatoire) | MySQL version | Affichée automatiquement sous la forme 5.7 ou 8.0. Aucune configuration nécessaire. |
| Import method | Sélectionnez Import from OSS. | |
| OSS bucket | Sélectionnez le compartiment OSS contenant votre fichier de sauvegarde. | |
| OSS file name | Sélectionnez le fichier de sauvegarde. Si le fichier se trouve dans un sous-répertoire, saisissez le chemin complet. Formats pris en charge : .xb (xbstream), _qp.xb (QuickLZ), .xb.zst (zstd). |
|
| Configuration automatique de la réplication (facultatif) | Auto replication building | Activez cette option pour configurer automatiquement la réplication depuis la base de données source après l'importation. Si vous laissez cette option désactivée, configurez la réplication manuellement après l'importation. |
| Source IP address | Adresse IP de la base de données autogérée source. | |
| Source port | Port de la base de données autogérée source. | |
| Source account | Compte sur la base de données source. Doit disposer des autorisations REPLICATION CLIENT et REPLICATION SLAVE. |
|
| Account password | Mot de passe du compte source. |
Méthode 2 : Streamer la sauvegarde directement vers RDS
Installer l'outil backup-helper et démarrer le flux de sauvegarde
# Install the backup-helper tool
wget -O backup-helper https://mysql-backup-helper.oss-cn-beijing.aliyuncs.com/v1.0.0-alpha/backup-helper && chmod +x backup-helper
# Start the backup stream (requires MySQL and the matching XtraBackup version to be installed)
./backup-helper --backup --mode=stream --host=<MySQL_IP> --port=<MySQL_port> --user=<MySQL_account> --password=<MySQL_password>
Importer le flux dans RDS
Connectez-vous à la console ApsaraDB RDS, sélectionnez une région et cliquez sur l'ID de l'instance.
Dans le volet de navigation de gauche, cliquez sur Native Replication.
Cliquez sur Import Full Data, configurez les paramètres et cliquez sur OK.
| Catégorie | Paramètre | Description |
|---|---|---|
| Méthode de téléchargement de la sauvegarde (obligatoire) | MySQL version | Affichée automatiquement sous la forme 5.7 ou 8.0. Aucune configuration nécessaire. |
| Import method | Sélectionnez Direct Stream Backup. | |
| Source backup IP address | Adresse IP utilisée pour le flux de sauvegarde. | |
| Source backup port | Port utilisé pour le flux de sauvegarde. Par défaut : 9999. | |
| Configuration automatique de la réplication (facultatif) | Auto replication building | Activez cette option pour configurer automatiquement la réplication depuis la base de données source après l'importation. Si vous laissez cette option désactivée, configurez la réplication manuellement après l'importation. |
| Source IP address | Adresse IP de la base de données autogérée source. | |
| Source port | Port de la base de données autogérée source. | |
| Source account | Compte sur la base de données source. Doit disposer des autorisations REPLICATION CLIENT et REPLICATION SLAVE. |
|
| Account password | Mot de passe du compte source. |
Configurer manuellement la réplication (si nécessaire)
Si vous n'avez pas activé Auto replication building lors de l'importation, ou si la configuration automatique a échoué et ne peut pas être récupérée, configurez manuellement le lien de réplication.
Créez un compte privilégié sur l'instance RDS.
-
Sur la base de données autogérée source, créez un compte de réplication et accordez les autorisations requises :
-- Create a replication account. For production, restrict the allowed IP address instead of using '%'. -- Replace 'Test123!' with a strong password. CREATE USER 'replica'@'%' IDENTIFIED BY 'Test123!'; -- Grant replication permissions GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replica'@'%'; -- Apply the changes FLUSH PRIVILEGES; -
Connectez-vous à l'instance RDS en utilisant le compte privilégié et exécutez les commandes suivantes : MySQL 5.7
-- Configure the replication source CHANGE MASTER TO MASTER_HOST='<source_IP>', MASTER_PORT='<source_port>', MASTER_USER='<replication_account>', MASTER_PASSWORD='<replication_account_password>', MASTER_AUTO_POSITION=1; -- Start replication START SLAVE; -- Check replication status SHOW SLAVE STATUS;MySQL 8.0
-- Configure the replication source CHANGE REPLICATION SOURCE TO SOURCE_HOST='<source_IP>', SOURCE_PORT='<source_port>', SOURCE_USER='<replication_account>', SOURCE_PASSWORD='<replication_account_password>', SOURCE_AUTO_POSITION=1; -- Start replication START REPLICA; -- Check replication status SHOW REPLICA STATUS;
Vérifier l'état de la réplication
Sur la page Native Replication de l'instance RDS, vérifiez l'état de la réplication. Lorsque l'état indique Running, le lien de réplication est actif et les données sont synchronisées.
Désactiver la réplication native
Lorsque vous êtes prêt à basculer votre application, ou si vous n'avez plus besoin de la réplication, désactivez la réplication native pour faire revenir l'instance en mode lecture/écriture.
Accédez à la page RDS Instances, sélectionnez une région et cliquez sur l'ID de l'instance.
Dans le volet de navigation de gauche, cliquez sur Native Replication, puis cliquez sur Disable.
Cliquez sur OK.
Après avoir cliqué sur OK, le lien de réplication depuis la base de données source est terminé. L'instance RDS redevient une instance ApsaraDB RDS for MySQL standard et passe du mode lecture seule au mode lecture/écriture, permettant ainsi les opérations d'écriture.
Référence API
| Opération | API | Notes |
|---|---|---|
| Créer une instance avec réplication native | CreateDBInstance | Définissez ExternalReplication sur ON. La configuration de base de l'instance doit respecter les prérequis. |
| Configurer un lien de réplication native pour une instance existante | ImportUserBackupFile | — |