Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Migrer les données d'une instance MySQL 5.7 ou 8,0 auto-gérée vers une instance ApsaraDB RDS for MySQL

Dernière mise à jour :Aug 26, 2026

Utilisez cette méthode si votre instance MySQL auto-gérée peut être mise hors ligne pendant la migration. Vous effectuez une sauvegarde physique complète avec Percona XtraBackup, vous la transférez vers Object Storage Service (OSS), puis vous l'importez via la console ApsaraDB RDS pour créer une nouvelle instance RDS.

Si votre base de données ne peut pas être mise hors ligne, utilisez Data Transmission Service (DTS) pour migrer les données avec un temps d'arrêt minimal.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance MySQL auto-gérée qui répond aux exigences de migration. Consultez la liste complète dans la section Limites.

  • Un bucket OSS situé dans la même région que votre instance RDS de destination. Si nécessaire, Créez des buckets.

  • Go et Unzip installés sur l'hôte exécutant l'instance MySQL auto-gérée.

Limites

Veuillez examiner les contraintes suivantes avant de poursuivre :

Catégorie

Contrainte

MySQL version

La source doit exécuter MySQL 5.7.32 ou une version antérieure, ou MySQL 8.0.18 ou une version antérieure. La source et la destination doivent utiliser la même version de MySQL.

Outil de sauvegarde

MySQL 5.7 nécessite Percona XtraBackup 2.4. MySQL 8.0 nécessite Percona XtraBackup 8.0.

Étendue de la sauvegarde

Sauvegarde complète uniquement. Les fichiers de sauvegarde différentielle et les journaux ne sont pas pris en charge. Les données incrémentielles générées après la fin de la sauvegarde ne sont pas incluses.

Options XtraBackup

Les options --tables, --tables-exclude, --tables-file, --databases et --databases-file ne sont pas prises en charge.

Format du fichier de sauvegarde

Le fichier doit être au format _QP.XB, ou compressé au format TAR.GZ. Le nom du fichier ne doit pas contenir de caractères spéciaux.

Chiffrement OSS

Définissez Encryption Method sur None lors de la création du bucket OSS. Les buckets chiffrés ne sont pas pris en charge.

Région OSS

Le bucket OSS doit se trouver dans la même région que l'instance RDS.

Taille du fichier OSS

Maximum de 16 TB lors du téléchargement par parties via CLI.

Répertoire de données

Le répertoire datadir doit correspondre au chemin de stockage par défaut. Exécutez `mysqladmin -u -p variables

grep datadir` pour vérifier.

Configuration InnoDB

innodb_data_file_path doit être défini sur la valeur par défaut ibdata1.

Destination

Les données ne peuvent être restaurées que sur une nouvelle instance RDS, et non sur une instance existante. La destination doit être une instance à la demande (pay-as-you-go) exécutant MySQL 5.7 ou MySQL 8.0 sur RDS Basic Edition avec des SSD standard.

Stockage

L'instance RDS de destination doit disposer d'un espace de stockage supérieur à celui des données sources.

Éléments non migrés

Les comptes utilisateur, les fonctions personnalisées, les procédures stockées et les informations de fuseau horaire ne sont pas migrés. Notez ces éléments avant la migration et ajoutez-les manuellement ensuite.

Réplication GTID

Si vous prévoyez de répliquer des données incrémentielles après la migration, activez la réplication basée sur GTID et définissez gtid_mode et enforce_gtid_consistency sur ON dans l'instance source.

AliyunRDSImportRole

Après avoir autorisé ApsaraDB RDS à accéder à OSS, un rôle RAM nommé AliyunRDSImportRole est créé dans Resource Access Management (RAM). Ne modifiez ni ne supprimez ce rôle.

Conservation de la sauvegarde

Ne supprimez pas le fichier de sauvegarde d'OSS avant la fin de la migration.

Identifier les objets non migrés

Exécutez la requête suivante sur votre instance source pour lister les procédures stockées et les fonctions que vous devrez recréer après la migration :

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
FROM information_schema.routines
WHERE ROUTINE_SCHEMA NOT IN ('sys', 'information_schema', 'performance_schema', 'mysql');

Notez également les comptes utilisateur et les paramètres de fuseau horaire avant de poursuivre.

Fonctionnement

  1. Installez Percona XtraBackup sur l'hôte exécutant l'instance MySQL auto-gérée.

  2. Installez MySQL Backup Helper, qui fournit backup_helper (vérification de compatibilité) et oss_stream (téléchargement vers OSS).

  3. Exécutez une vérification de compatibilité, effectuez une sauvegarde complète et transférez-la directement vers OSS. Importez ensuite le fichier de sauvegarde via la console ApsaraDB RDS pour créer une nouvelle instance RDS.

L'environnement utilisé dans ce guide est une instance Elastic Compute Service (ECS) exécutant CentOS Linux V8.3.2011. Pour les étapes spécifiques à Ubuntu, consultez l'Annexe 1 : Installer Percona XtraBackup sur Ubuntu et l'Annexe 2 : Installer Go et Unzip sur Ubuntu.

Étape 1 : Installer Percona XtraBackup

Percona XtraBackup est un outil de sauvegarde à chaud pour MySQL qui permet des sauvegardes complètes sans impact sur la disponibilité. Installez la version correspondant à votre version de MySQL.

MySQL 5.7

MySQL 5.7 — utilise Percona XtraBackup 2.4 :

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

MySQL 8.0

MySQL 8.0 — utilise Percona XtraBackup 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

Pour Ubuntu, consultez l'Annexe 1.

Étape 2 : Installer MySQL Backup Helper

MySQL Backup Helper fournit deux outils : backup_helper vérifie si votre instance prend en charge la migration, et oss_stream transfère la sauvegarde directement vers OSS.

Installer les dépendances (CentOS)

sudo yum install -y go
sudo yum install -y unzip

Pour Ubuntu, consultez l'Annexe 2.

Compiler MySQL Backup Helper

  1. Téléchargez le code source :

    wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip
  2. Décompressez le package :

    unzip master.zip
  3. Compilez backup_helper :

    cd mysql-backup-helper-master
    go build -a -o backup_helper main.go
  4. Compilez oss_stream :

    cd oss_stream
    go build -a -o oss_stream oss_stream.go

Étape 3 : Sauvegarder et migrer

3,1 Vérifier la compatibilité de la migration

Exécutez backup_helper pour vérifier que l'instance source prend en charge la migration :

cd ~/mysql-backup-helper-master && ./backup_helper \
  -host <host-ip> \
  -port <port> \
  -user <username> \
  --password <password>

Remplacez les espaces réservés par vos valeurs réelles :

Espace réservé

Description

Exemple

<host-ip>

Adresse IP de l'hôte exécutant l'instance MySQL

127.0.0.1

<port>

Port MySQL

3306

<username>

Nom d'utilisateur du compte root

root

<password>

Mot de passe du compte root

Aa123456@

Si la vérification réussit, passez à l'étape suivante.

3,2 Sauvegarde et envoi vers OSS

Avertissement

Percona XtraBackup enregistre la ligne de commande complète (y compris les mots de passe) dans le fichier xtrabackup_info au sein de la sauvegarde. Une fois l'envoi terminé, assurez-vous que ce fichier n'expose pas d'identifiants sensibles.

Exécutez la sauvegarde et diffusez-la directement vers votre compartiment OSS. Sélectionnez la commande correspondant à votre version MySQL.

MySQL 5.7

MySQL 5.7 — utilise innobackupex :

innobackupex --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

Exemple :

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ****** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

MySQL 8.0

MySQL 8.0 — utilise xtrabackup :

xtrabackup --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

Exemple :

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

Remplacez les espaces réservés par vos valeurs réelles :

Espace réservé

description

Exemple

<host-ip>

Adresse IP de l'hôte exécutant l'instance MySQL

127.0.0.1

<port>

Port MySQL

3306

<username>

Nom d'utilisateur du compte root

root

<password>

Mot de passe du compte root

Aa123456@

<temp-dir>

Répertoire temporaire pour la sauvegarde

/root/mysql/data

<AccessKey-ID>

Votre AccessKey ID Alibaba Cloud

LTAI5tXxx

<AccessKey-secret>

Votre secret AccessKey Alibaba Cloud

xXxXxXx

<bucket-name>

Nom de votre compartiment OSS

test

<OSS-endpoint>

Endpoint de votre compartiment OSS

oss-ap-southeast-1.aliyuncs.com

<backup-file-name>

Nom à attribuer à l'objet de sauvegarde dans OSS

backup_qp.xb

Pour les bases de données volumineuses, exécutez la commande avec nohup afin d'éviter toute interruption en cas de déconnexion de la session. MySQL 5.7 : MySQL 8.0 :
nohup sh -c 'innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ --stream=xbstream --compress /root/mysql/data | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId LTAI**************** -accessKeySecret ****** -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
nohup sh -c 'xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** -accessKeySecret ****** \
  -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &

Une fois la sauvegarde terminée, le terminal affiche completed OK !.

Connectez-vous à la console OSS pour confirmer que le fichier a bien été envoyé. Si l'envoi a échoué, relancez la commande de sauvegarde.

Si OSS est temporairement indisponible, enregistrez d'abord la sauvegarde dans un fichier local, puis envoyez-la ultérieurement. Consultez la section Annexe 3 : Sauvegarde locale et envoi vers OSS.

3.3 Importation de la sauvegarde dans la console ApsaraDB RDS

  1. Connectez-vous à la console ApsaraDB RDS. Dans la barre de navigation supérieure, sélectionnez la région de votre instance RDS de destination. Dans le volet de navigation de gauche, cliquez sur Backups.

  2. Sous l'onglet User Backups, cliquez sur Import Backup.

  3. Dans l'assistant Import Guide, lisez les instructions et cliquez sur Next jusqu'à atteindre l'étape 3. Import Data.

    Les étapes 1. Back Up Source Database et 2. Upload Backup Files to OSS de l'assistant correspondent aux étapes 3,1 et 3,2 de ce guide.
  4. À l'étape 3. Import Data, configurez les paramètres suivants et cliquez sur OK.

    Si ApsaraDB RDS n'est pas autorisé à accéder à OSS, cliquez sur Authorize en bas de cette étape. Sur la page qui s'affiche, cliquez sur Confirm Authorization Policy .

    Paramètre

    description

    MySQL version

    Affiche automatiquement 5.7/8.0. Les versions MySQL 5.7 et MySQL 8.0 sont prises en charge.

    Region

    Région du compartiment OSS contenant le fichier de sauvegarde. Elle doit correspondre à la région de l'instance RDS de destination.

    OSS Bucket

    Compartiment OSS contenant le fichier de sauvegarde. Pour plus de détails, consultez la section Upload objects.

    OSS file name

    Objet de sauvegarde dans le compartiment OSS. La recherche floue et exacte est prise en charge. Le fichier doit être au format _QP.XB ou compressé au format TAR.GZ.

    Note

    Description facultative permettant d'identifier le fichier de sauvegarde.

    Zone

    Zone du compartiment OSS. La sélection d'une zone permet à ApsaraDB RDS de créer un snapshot en quelques secondes, réduisant ainsi le temps d'importation. La nouvelle instance RDS est créée dans cette zone.

    Storage Capacity

    Espace de stockage requis pour le fichier de sauvegarde. Valeurs valides : 20–6000 Go. Par défaut, la valeur est égale à 3 fois la taille du fichier de sauvegarde (minimum 20 Go).

  5. Sous l'onglet User Backups, attendez que le statut Status de la tâche de vérification passe de Verifying à Completed.

    Important

    La durée de vérification varie. Les instances présentant une activité d'écriture élevée ou des transactions volumineuses lors de la sauvegarde peuvent nécessiter plus de temps pour la vérification.

  6. Localisez le fichier de sauvegarde et cliquez sur Restore dans la colonne Actions.

  7. Configurez les paramètres suivants et cliquez sur Next: Instance Configuration.

    Paramètre

    description

    Zone of Primary Node

    Zone de l'instance RDS principale. Ce paramètre s'affiche uniquement si vous n'avez pas sélectionné de zone lors de l'importation du fichier de sauvegarde.

    Storage Type

    ESSD PL1 : SSD Enterprise de niveau de performance 1. Standard SSD : Périphérique de stockage en bloc élastique standard. Pour plus de détails, consultez la section Storage types.

    Instance Type

    General-purpose (Entry-level) : Mémoire et E/S allouées exclusivement, avec CPU et stockage partagés. Consultez la liste complète dans la section Primary ApsaraDB RDS instance types.

    Storage Capacity

    Espace de stockage provisionné pour les fichiers de données, les fichiers système, les fichiers journaux et les fichiers de transaction. Ajustable par incréments de 5 Go.

  8. Configurez les paramètres suivants et cliquez sur Next: Confirm Order.

    Paramètre

    description

    Network Type

    Sélectionnez VPC. Un cloud privé virtuel (VPC) offre une sécurité accrue et de meilleures performances. Vous devez également configurer les paramètres VPC et vSwitch of Primary Node. L'instance RDS et toute instance ECS que vous souhaitez connecter doivent se trouver dans le même VPC.

    Parameter Template

    Modèle de paramètres système ou personnalisé. Consultez la section Use a parameter template.

    Time Zone

    Fuseau horaire de l'instance RDS.

    Table Name Case Sensitivity

    Si les noms de table de l'instance source sont sensibles à la casse, sélectionnez Case-sensitive pour maintenir la cohérence.

  9. Confirmez la configuration de l'instance dans la section Parameters, définissez le Purchase Plan, acceptez les conditions d'utilisation et cliquez sur Pay Now.

    La création de l'instance par ApsaraDB RDS prend entre 1 et 5 minutes.

Étapes suivantes

Configurer la période de rétention des sauvegardes

Par défaut, le fichier de sauvegarde importé est conservé pendant 3 jours. Ajustez cette durée en fonction de vos besoins.

  1. Connectez-vous à la console ApsaraDB RDS. Sélectionnez une région, puis cliquez sur Backups dans le volet de navigation de gauche.

  2. Localisez le fichier de sauvegarde. Dans la colonne Expiration Time, cliquez sur Set Retention Period.

  3. Sélectionnez une durée de rétention dans la liste déroulante ou choisissez l'option Custom Retention Period et saisissez une valeur.

  4. Cliquez sur OK.

Si la date d'expiration dépasse 2099, la valeur affichée est Permanent .

Ajouter des tags au fichier de sauvegarde

  1. Connectez-vous à la console ApsaraDB RDS. Sélectionnez une région, puis cliquez sur Backups.

  2. Localisez le fichier de sauvegarde. Dans la colonne Tags, cliquez sur +Add.

  3. Dans la boîte de dialogue, cliquez sur Create a label, renseignez les champs Key et Value, puis cliquez sur OK à côté des champs pour créer le tag. Enfin, cliquez sur OK en bas à droite.

    Pour utiliser un tag existant, sélectionnez-le dans la liste déroulante Select the label .
  4. Pour mettre à jour un tag, survolez-le et cliquez sur edit. Répétez l'étape 3 dans l'infobulle qui s'affiche.

Vérifier les données de journal pour la récupération incrémentielle

Si des modifications de données ont eu lieu sur l'instance source pendant la sauvegarde, le fichier de sauvegarde contient les informations de journal nécessaires à la récupération incrémentielle.

  1. Connectez-vous à la console ApsaraDB RDS. Sélectionnez une région, puis cliquez sur Backups.

  2. Localisez le fichier de sauvegarde et cliquez sur View Details dans la colonne Actions.

  3. Dans le message qui s'affiche, examinez les données de journal :

    • Master_Log_File : premier fichier de journal contenant les données incrémentielles.

    • Master_Log_Position : première entrée de journal dans ce fichier contenant des données incrémentielles.

La période de rétention par défaut des enregistrements de validation des sauvegardes est de 7 jours. Après la migration, répliquez les données incrémentielles de l'instance source vers l'instance RDS de destination dès que possible.

Supprimer le fichier de sauvegarde

Si vous n'avez plus besoin du fichier de sauvegarde, supprimez-le pour réduire les coûts de stockage.

  1. Connectez-vous à la console ApsaraDB RDS. Sélectionnez une région, puis cliquez sur Backups.

  2. Localisez le fichier de sauvegarde et cliquez sur Delete dans la colonne Actions.

  3. Dans la boîte de dialogue de confirmation, cliquez sur OK.

Mettre à niveau votre instance RDS

Après la migration, vous pouvez effectuer les opérations suivantes sur la nouvelle instance RDS :

Autres opérations dans l'onglet User Backups

  • Filtrer les colonnes : cliquez sur l'icône Customize list items en haut à droite pour afficher ou masquer des colonnes. Déplacez les colonnes entre la liste masquée (à gauche) et la liste affichée (à droite) à l'aide des icônes Right et Left. Cliquez sur OK.

  • Exporter la liste des instances : cliquez sur l'icône Export the resource list pour exporter les informations de sauvegarde sous forme de fichier CSV.

  • Actualiser : cliquez sur l'icône Refresh pour actualiser l'onglet User Backups.

Annexe 1 : Installer Percona XtraBackup sur Ubuntu

Sélectionnez la version correspondant à votre version de MySQL.

MySQL 8.0

  1. Installez Percona XtraBackup :

    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
  2. Installez qpress :

    sudo apt-get install -y qpress
Si le message The following packages have unmet dependencies s'affiche, exécutez la commande apt-get -f install pour résoudre les dépendances, puis réessayez.

Annexe 2 : Installer Go et Unzip sur Ubuntu

Installez le langage de programmation Go :

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install -y golang-go

Installez Unzip :

sudo apt-get -y install unzip

Annexe 3 : Sauvegarder localement et télécharger vers OSS

Utilisez cette méthode si OSS est temporairement indisponible lors de l'exécution de la sauvegarde.

Étape 1 : Sauvegarder dans un fichier local

Sélectionnez la commande adaptée à votre version de MySQL.

MySQL 5.7 :

innobackupex --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

Exemple :

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

MySQL 8.0 :

xtrabackup --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

Exemple :

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

Étape 2 : Télécharger le fichier local vers OSS

Lorsque OSS est disponible, effectuez le téléchargement à l'aide de oss_stream :

cat /<backup-dir>/<backup-file-name>_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

Exemple :

cat /root/backup_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId ******** \
  -accessKeySecret LTAI**************** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb