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).
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.
ImportantLa 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_infileest 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 fonctionUNHEXdans votre commandeLOAD DATA LOCAL INFILEpour les reconvertir en binaire. Pour les données BLOB spécifiquement, utilisez plutôtmysqldumppour 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.pypré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 :
Téléchargez et décompressez le fichier de sauvegarde.
Préparez le script de restauration.
Exécutez la commande de restauration.
Étape 1 : Télécharger et décompresser le fichier de sauvegarde
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.
-
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.gzvers/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.zstvers/home/mysql/data:zstd -d -c backup.tar.zst | tar -xvf - -C /home/mysql/data
-
-
(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
-
Téléchargez le fichier de script Python MySQL sur votre machine locale ou votre instance ECS.
ImportantCe script est fourni à titre de référence uniquement. Adaptez-le à votre environnement avant utilisation.
-
Accordez les permissions d'exécution au script :
chmod +x ./<script_name>.pyExemple :
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********"
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"

Étapes suivantes
Migrer des données avec DTS : Migrer des données d'une instance RDS for MySQL vers une base de données MySQL auto-gérée.
Explorer d'autres options de restauration : Présentation des solutions de restauration des données.
Restaurer à partir d'une sauvegarde physique : Restaurer un fichier de sauvegarde physique RDS for MySQL vers une base de données auto-gérée.
Restaurer à partir d'une sauvegarde logique : Restaurer un fichier de sauvegarde logique RDS for MySQL vers une base de données auto-gérée.