Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Restore the data of an ApsaraDB RDS for MySQL instance to a self-managed MySQL instance by using snapshot backup files

Dernière mise à jour :Aug 08, 2026

Utilisez la fonctionnalité Download Backup pour convertir une sauvegarde instantanée d'une instance RDS for MySQL en fichier CSV ou SQL, puis restaurez-la dans une base de données MySQL auto-gérée sur une machine locale ou une instance ECS (Elastic Compute Service).

Important

Cette rubrique concerne uniquement les instances RDS for MySQL basées sur des disques. Pour les instances à disque local haute performance, consultez Restaurer un fichier de sauvegarde physique RDS for MySQL vers une base de données auto-gérée ou Restaurer un fichier de sauvegarde logique RDS for MySQL vers une instance MySQL auto-gérée.

Prérequis

Avant de commencer, assurez-vous que les conditions suivantes sont remplies :

  • L'instance RDS for MySQL répond à tous les critères suivants :

    • Version de la base de données : 8,0 ou 5,7 (les instances Serverless sont prises en charge)

    • Classe de stockage : SSD entreprise (ESSD) ou disque hautes performances

    • État : En cours d'exécution

    Retrouvez ces informations sur la page Basic Information de l'instance.
    Important

    La fonctionnalité de téléchargement avancé n'est pas prise en charge pour les instances à disque hautes performances ayant activé la fonction d'archivage des données. Les tâches de téléchargement échoueront.

  • Le chiffrement transparent des données (TDE) est désactivé sur l'instance RDS. Si l'instance contient des tables chiffrées, déchiffrez-les avant de poursuivre. La restauration échouera si des tables chiffrées existent.

  • Le paramètre local_infile est activé sur la base de données MySQL auto-gérée. Vérifiez l'état (ON = activé) :

    SHOW GLOBAL VARIABLES LIKE 'local_infile';

    Pour l'activer :

    SET GLOBAL local_infile=1;

Limites

Les limites suivantes s'appliquent lors de la restauration des données à partir d'un ensemble de sauvegarde téléchargé (un fichier CSV ou SQL converti à partir des données de sauvegarde instantanée).

Types de champs binaires non pris en charge : BIT, BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB.

Ces types sont stockés au format hexadécimal dans le fichier téléchargé. Lors de l'importation, MySQL les traite comme des chaînes de caractères. Utilisez la fonction UNHEX dans votre commande LOAD DATA LOCAL INFILE pour les reconvertir en binaire. Pour les données BLOB spécifiquement, utilisez plutôt mysqldump pour effectuer la sauvegarde et la restauration :

Sauvegarde :

mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <self-managed_database_name> --skip-triggers --skip-lock-tables > /tmp/<self-managed_database_name>.sql

Restauration :

mysql -h 127.0.0.1 -u username -p database_name < backup_file.sql

Types de données spatiales non pris en charge : GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON et GEOMETRYCOLLECTION.

Avant de commencer

Vérifiez les points suivants avant d'exécuter la restauration :

  • Maintenance du script : Le script restore_from_downloads.py présenté dans cette rubrique est fourni à titre de référence uniquement et n'est plus maintenu. Vérifiez sa compatibilité avec votre environnement avant utilisation.

  • Cohérence des versions de base de données : La version de RDS for MySQL et celle de votre instance MySQL auto-gérée doivent correspondre. Une incompatibilité de version peut entraîner l'échec de la restauration.

  • Absence de conflits de noms de bases de données ou de tables : La base de données cible ne doit contenir aucune base de données ou table portant le même nom que celles présentes dans la sauvegarde. La restauration échouera en cas de conflit de noms.

  • Caractères spéciaux dans les chemins, comptes ou mots de passe : Entourez la valeur de guillemets doubles si elle contient &, # ou des espaces.

    # Path with special character (&)
    python ./restore_from_downloads.py "/path/to/data&test" 127.0.0.1 3306 root zhtpasswordtest
    
    # Password with special characters (#, @)
    python ./restore_from_downloads.py /data 127.0.0.1 3306 root "#Test@20250821"
  • Interruption de la tâche : N'interrompez pas la tâche de restauration une fois qu'elle a démarré. Une interruption pourrait laisser les données restaurées incomplètes ou provoquer l'échec de la tâche. Procédez avec prudence.

Restaurer une sauvegarde instantanée vers une base de données MySQL auto-gérée

Cette rubrique utilise un fichier SQL issu d'une instance disque RDS for MySQL, restauré sur une instance ECS exécutant Alibaba Cloud Linux 3.2104 LTS 64 bits. Adaptez les commandes à votre environnement.

La restauration comporte trois étapes :

  1. Téléchargez et décompressez le fichier de sauvegarde.

  2. Préparez le script de restauration.

  3. Exécutez la commande de restauration.

Étape 1 : Télécharger et décompresser le fichier de sauvegarde

  1. Connectez-vous à la console RDS. Utilisez la fonctionnalité Download Backup pour convertir le fichier de sauvegarde en fichier CSV ou SQL et le télécharger sur votre machine locale ou votre instance ECS.

  2. Décompressez le fichier de sauvegarde.

    • Pour les fichiers .tar.gz :

      tar -izxvf <compressed_package_name>.tar.gz -C <destination_directory>

      Exemple — décompresse backup.tar.gz vers /home/mysql/data :

      tar -izxvf backup.tar.gz -C /home/mysql/data
    • Pour les fichiers .tar.zst :

      zstd -d -c <compressed_package_name>.tar.zst | tar -xvf - -C <destination_directory>

      Exemple — décompresse backup.tar.zst vers /home/mysql/data :

      zstd -d -c backup.tar.zst | tar -xvf - -C /home/mysql/data
  3. (Facultatif) Vérifiez que les fichiers ont été décompressés au bon emplacement :

    ls -al /home/mysql/data

Étape 2 : Préparer le script de restauration

  1. Téléchargez le fichier de script Python MySQL sur votre machine locale ou votre instance ECS.

    Important

    Ce script est fourni à titre de référence uniquement. Adaptez-le à votre environnement avant utilisation.

  2. Accordez les permissions d'exécution au script :

    chmod +x ./<script_name>.py

    Exemple :

    chmod +x ./restore_from_downloads.py

Étape 3 : Exécuter la commande de restauration

Exécutez le script de restauration avec la syntaxe suivante :

python ./<script_name>.py <path_to_CSV_or_SQL_file_directory> <database_host> <database_port> <database_account> <database_password>

Remplacez les espaces réservés :

Espace réservé Description Exemple
<script_name> Nom du script Python restore_from_downloads
<path_to_CSV_or_SQL_file_directory> Répertoire contenant les fichiers CSV ou SQL décompressés /home/mysql/data
<database_host> Adresse hôte de la base de données MySQL auto-gérée 127.0.0.1
<database_port> Port de la base de données MySQL auto-gérée 3306
<database_account> Compte de base de données root
<database_password> Mot de passe du compte de base de données (entourez de guillemets s'il contient des caractères spéciaux) "#Tes********"

Exemple :

python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tes********"
Important

Si vous voyez Command 'python' not found, Python n'est pas installé ou ne figure pas dans le PATH système. Vérifiez quelle version de Python est installée, puis utilisez la commande appropriée. Pour Python 3 :

python3 ./restore_from_downloads.py /home/mysql/data/test1.sql 127.0.0.1 3306 zhtxxxxx "#txxxxx"

image.png

Étapes suivantes