Tous les produits
Search
Centre de documentation

PolarDB:Restore to a self-managed MySQL database

Dernière mise à jour :Aug 11, 2026

PolarDB permet d'exporter une sauvegarde par snapshot depuis un cluster sur disque cloud au format CSV ou SQL. Ce fichier sert ensuite à restaurer les données vers une base de données MySQL auto-gérée.

Important

Le script de restauration Python n'est plus maintenu. Évaluez-le soigneusement avant toute utilisation.

Prérequis

Exigences relatives au cluster PolarDB for MySQL

Important

Pour garantir le succès de la restauration, la version de votre base de données auto-gérée doit correspondre exactement à celle du cluster source PolarDB for MySQL.

Le cluster doit satisfaire aux exigences suivantes :

  • Cluster : Cette fonctionnalité est disponible uniquement pour l'édition Cluster Edition des clusters Enterprise Edition.

  • Région : Chine (Chengdu), Chine (Guangzhou), Chine (Qingdao), Chine (Pékin), Chine (Shanghai), Chine (Zhangjiakou), Chine (Hangzhou), Chine (Shenzhen), Chine (Hong Kong), Malaisie (Kuala Lumpur), Indonésie (Jakarta), Japon (Tokyo), Singapour, États-Unis (Silicon Valley), États-Unis (Virginie) et Allemagne (Francfort).

    Remarque

    Cette fonctionnalité sera bientôt disponible dans d'autres régions.

  • Autres :

    • L'utilisateur RAM doit disposer des permissions nécessaires pour télécharger les fichiers de sauvegarde. Pour accorder ces permissions à un utilisateur RAM, consultez la rubrique Permissions des utilisateurs RAM.

    • Les données de sauvegarde ne sont pas chiffrées. Le téléchargement des fichiers de sauvegarde depuis des clusters PolarDB chiffrés est impossible.

    • Une seule tâche de téléchargement (en cours d'exécution ou ayant échoué) est autorisée simultanément par cluster ou instance.

Exigences relatives à la base de données MySQL auto-gérée

Assurez-vous que le paramètre local_infile est activé sur votre base de données MySQL auto-gérée.

Remarque
  • Vérifiez l'état du paramètre local_infile. La valeur ON indique qu'il est activé : SHOW GLOBAL VARIABLES LIKE 'local_infile';

  • Activez le paramètre local_infile : SET GLOBAL local_infile=1;

Limites

Les limites suivantes s'appliquent lors de la restauration de données depuis une sauvegarde téléchargée vers une base de données MySQL auto-gérée :

  • Les types de champs binaires suivants ne sont pas pris en charge : BIT, BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB.

    Remarque

    Si un jeu de sauvegarde contient ces types de champs, ils sont stockés au format hexadécimal. Vous devez alors utiliser manuellement la fonction UNHEX dans la commande load data local infile pour reconvertir les valeurs hexadécimales vers leur format binaire d'origine.

  • Les types de champs spatiaux suivants ne sont pas pris en charge : GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON et GEOMETRYCOLLECTION.

Remarques d'utilisation

  • Utilisez la même version de base de données pour le cluster PolarDB for MySQL et la base de données MySQL auto-gérée. Des incompatibilités entre versions différentes peuvent provoquer l'échec de l'opération de restauration.

  • Avant d'exécuter la commande de restauration, assurez-vous que la base de données cible ne contient aucune base de données ou table portant le même nom que celles présentes dans les données de sauvegarde. Cela évite les conflits de données et les pertes potentielles. Supprimez au préalable toute base de données ou table conflictuelle.

  • L'interruption d'une tâche de restauration peut entraîner des données incomplètes ou l'échec de la tâche.

Procédure

Cet exemple illustre la restauration de données depuis un fichier de sauvegarde SQL d'un cluster PolarDB for MySQL vers une base de données MySQL auto-gérée hébergée sur une instance ECS (CentOS 7.8 64 bits). Adaptez les commandes à votre environnement spécifique.

  1. Dans la console PolarDB, utilisez la fonctionnalité Télécharger les fichiers de sauvegarde pour convertir le fichier de sauvegarde du cluster au format CSV ou SQL. Téléchargez ensuite ce fichier sur votre machine locale ou sur une instance ECS.

  2. (Facultatif) Vérifiez que le fichier de sauvegarde est bien décompressé dans le répertoire spécifié (/home/mysql/data).

    ls -al /home/mysql/data
  3. Téléchargez le script Python sur votre machine locale ou votre instance ECS.

    Important

    Ce script est fourni à titre indicatif uniquement et peut nécessiter des modifications selon votre environnement. Utilisez-le avec prudence.

  4. Rendez le script restore_from_downloads.py exécutable en exécutant la commande suivante :

    chmod +x ./restore_from_downloads.py
  5. Restaurez les données du fichier CSV ou SQL vers votre base de données auto-gérée :

    python ./restore_from_downloads.py <path_to_csv_or_sql_directory> <database_endpoint> <database_port> <database_username> <database_password>

    Exemple :

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

    La fermeture de la fenêtre du terminal interrompt l'exécution du script. Pour l'exécuter en arrière-plan, utilisez la commande suivante :

     nohup python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tes********" > app.log 2>&1 &

    Sortie :

    [root@ixxx ~]# python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tesxxx"
    [INFO]: restore data from /home/mysql/data to 127.xxx:3306
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [INFO]: restore structure database: zhxxx ends
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [INFO]: restore structure table: zhxxx ends
    [INFO]: trying to exec: mysql -h127.xxx -P3306 -uroot -p#Tesxxx </home/mysql/data/zxxx
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [INFO]: restore data [1/1] of table zhxxx.zhxxx
    Important
    • Assurez-vous que votre base de données auto-gérée ne contient pas de base de données portant le même nom que l'une de celles présentes dans la sauvegarde. Dans le cas contraire, l'opération de restauration échouera.

    • Si le nom d'utilisateur ou le mot de passe de la base de données contient des caractères spéciaux, tels que des dièses (#) ou des espaces, placez la valeur entre guillemets doubles ("") lors de son passage en paramètre de ligne de commande. Par exemple, si le mot de passe est #1234, vous devez passer "#1234" dans la ligne de commande.

    • Une erreur du type Command 'python' not found signifie que Python n'est pas installé ou n'est pas présent dans le PATH de votre système. Vérifiez votre installation Python ainsi que la commande utilisée pour l'exécuter. Par exemple, si Python 3 est installé, vous pouvez utiliser python3 ./restore_from_downloads.py /home/mysql/data/test1.sql 127.0.0.1 3306 zhtxxxxx "#txxxxx".

    • L'apparition du message d'avertissement [Warning] Using a password on the command line interface can be insecure lors de l'exécution d'un script Python s'explique par l'utilisation de la commande mysql -h<database endpoint> -P<database port> -u<database username> -p<database password> -e<SQL> par le script. Cette méthode présente un risque de sécurité car d'autres utilisateurs du système peuvent consulter le mot de passe via des commandes comme ps. Cet avertissement n'affecte pas votre opération de récupération. Une fois la récupération terminée, connectez-vous à la base de données MySQL auto-gérée pour modifier le mot de passe du compte.

    • Une erreur telle que Access denied for user 'xxx'@'xxx' (using password: YES) signale un nom d'utilisateur ou un mot de passe incorrect. Vérifiez que vous avez saisi les identifiants correctement.