Tous les produits
Search
Centre de documentation

PolarDB:Importation rapide

Dernière mise à jour :Aug 31, 2026

PolarDB for MySQL propose la fonctionnalité d'importation rapide, qui vous permet d'interroger l'intégralité des données des bases de données et des tables dans une tâche de restauration après environ 5 à 10 minutes d'attente (quelle que soit la taille des données à restaurer) suivant la soumission de la tâche, sans attendre la fin de celle-ci.

Présentation du scénario

Remarque

La fonctionnalité d'importation rapide est compatible avec le nouveau processus de restauration des bases de données et des tables, et les opérations d'interrogation peuvent être effectuées simultanément à la tâche de restauration.

La fonctionnalité d'importation rapide permet d'accélérer les deux scénarios suivants :

  • Lorsque des données ou des tables sont supprimées par inadvertance et qu'il est impossible de déterminer le moment précis de l'incident, les tâches de restauration traditionnelles peuvent prendre beaucoup de temps. Grâce à l'importation rapide, vous pouvez interroger et vérifier rapidement les données sans attendre la fin de la tâche de restauration.

  • Lorsqu'une petite quantité de données est supprimée par inadvertance mais que la table est volumineuse, l'importation rapide vous permet d'utiliser INSERT ... SELECT ... pour extraire rapidement les données requises des tables de la tâche de restauration et les insérer dans la table où les données ont été supprimées, améliorant ainsi l'efficacité opérationnelle.

Exigences de version

La version du moteur de base de données applicable est MySQL 8.0.1, et la version mineure doit être 8.0.1.1.49 ou ultérieure. Vous pouvez confirmer la version de votre cluster en interrogeant le numéro de version.

Précautions

Remarque

Cette fonctionnalité est actuellement en phase de déploiement progressif. Pour l'utiliser, vous pouvez nous contacter afin de rejoindre la liste d'autorisation et de l'activer.

  • Seule la configuration file-per-table (configuration par défaut) est prise en charge pour les tables non compressées et non chiffrées. Les données peuvent être interrogées pendant l'exécution des tâches de restauration.

  • Lorsque le nombre de tables dans la tâche de restauration est inférieur à 1 000, le système active par défaut la fonctionnalité Fast Import, ce qui vous permet d'interroger l'intégralité des données pendant le processus de restauration.

    Remarque

    Lorsque le nombre de tâches de restauration dépasse 1 000, le système n'active pas la fonctionnalité Fast Import. Le flux de gestion des tâches détermine automatiquement s'il convient d'activer la fonctionnalité Fast Import en fonction de la tâche que vous soumettez.

  • Les opérations d'interrogation ne sont prises en charge que sur les nœuds en lecture/écriture (RW) et en lecture seule (RO). Si des nœuds en lecture seule (RO) avec stockage en colonnes existent, utilisez la syntaxe HINT pour forcer le routage des requêtes vers les nœuds en lecture/écriture (RW) ou en lecture seule (RO) avec stockage en lignes. À défaut, aucune donnée ne pourrait être renvoyée.

  • Lorsque les ressources du buffer pool sont suffisantes, l'accès aux tables en état de restauration offre une efficacité comparable à celle de l'accès aux tables normales. Toutefois, dans les scénarios où la charge de travail du cluster est élevée, l'efficacité de l'accès aux tables en état de restauration est limitée afin de réduire l'impact sur les opérations commerciales normales.

  • Avant la fin de la tâche de restauration, les tables cibles de la restauration ne sont accessibles qu'en mode lecture seule.

Instructions d'utilisation

Soumettre une tâche de restauration de base de données et de table

Après avoir soumis une tâche de restauration de base de données et de table, accédez à la page des détails de la tâche via le lien de détails situé dans le coin supérieur droit de la page.

Une tâche de restauration de base de données et de table comprend 6 étapes :

  1. Initialisation de la tâche

  2. Restauration complète sur le nœud temporaire

  3. Restauration incrémentielle sur le nœud temporaire (si nécessaire)

  4. Prétraitement de la restauration de la base de données et de la table

  5. Restauration de la base de données et de la table

  6. Finalisation de la tâche et récupération des ressources

Sur la page des détails de la tâche, vous pouvez consulter la progression en temps réel. Une fois l'étape 4 terminée, confirmez que la tâche de restauration a créé les bases de données ou les tables cibles en exécutant des instructions telles que show databases ou show tables. À ce stade, vous pouvez interroger l'intégralité des données des bases de données ou des tables cibles.

Accès rapide en lecture seule

Vous pouvez interroger la table information_schema.fast_import_tablespaces pour obtenir des informations sur toutes les tables qui prennent en charge l'accès rapide en lecture seule dans la tâche de restauration actuelle.

Remarque

Les tables en cours d'importation sont accessibles en mode lecture rapide, mais leurs noms spécifiques n'apparaissent pas dans les résultats de la requête suivante. Exécutez la commande SHOW PROCESSLIST pour afficher les instructions SQL contenant dbms_rman.import et obtenir les noms des tables en cours de restauration.

SELECT * FROM information_schema.fast_import_tablespaces;
  • Les tables en état de restauration sont accessibles en mode lecture seule avec l'intégralité des données.

    | 106 | root      | 127.0.0.1:49055 | NULL               | Sleep          |  13 |                        | NULL                                                                    |
    | 146 | xxx       | xxx             | NULL               | Sleep          |  43 |                        | NULL                                                                    |
    | 366 | xxx       | xxx             | NULL               | Polar Log Dump |   0 | Reading log from innodb | NULL                                                                    |
    | 368 | xxx       | xxx             | NULL               | Polar Log Ack  |   0 | Receiving from client  | NULL                                                                    |
    | 788 | xxx       | xxx             | NULL               | Sleep          | 295 |                        | NULL                                                                    |
    | xxx | xxx       | xxx             | NULL               | Query          | 332 | altering table         | /* rds internal mark */ call dbms_rman.import('test', 'sbtest1_bk03211652' |
    | 216448 | xxx    | xxx             | information_schema | Sleep          |   7 |                        | NULL                                                                    |
    | 216915 | xxx    | xxx             | NULL               | Sleep          |   0 |                        | NULL                                                                    |
    | 216916 | xxx    | xxx             | NULL               | Sleep          |   0 |                        | NULL                                                                    |
    | 536879884 | xxx |                 | test               | Query          |   0 | starting               | show processlist                                                        |
    
    31 rows in set (0.00 sec)
    
    mysql> show tables;
    +----------------------+
    | Tables_in_test       |
    +----------------------+
    | sbtest1              |
    | sbtest1_bk03211652   |
    | sbtest2              |
    | sbtest2_bk03211652   |
    +----------------------+
    4 rows in set (0.00 sec)
    
    mysql> select count(*) from sbtest1;
    +-----------+
    | count(*)  |
    +-----------+
    | 100000000 |
    +-----------+
    1 row in set (4.64 sec)
    
    mysql> select count(*) from sbtest1_bk03211652;
    +-----------+
    | count(*)  |
    +-----------+
    | 100000000 |
    +-----------+
    1 row in set (48.21 sec)
  • Les autres tables pour lesquelles l'accès rapide est activé sont accessibles en mode lecture seule avec l'intégralité des données.

    mysql> select * from information_schema.fast_import_tablespaces;
    +----------------+-------------------------+------------------------------------------------------------------+
    | LOCAL_SPACE_ID | SPACE_NAME              | REMOTE_DATA_PATH                                                 |
    +----------------+-------------------------+------------------------------------------------------------------+
    |             18 | test/sbtest2_bk03211652 | xxx/test/sbtest2_bk03211652.ibd                                  |
    +----------------+-------------------------+------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> show tables;
    +------------------------+
    | Tables_in_test         |
    +------------------------+
    | sbtest1                |
    | sbtest1_bk03211652     |
    | sbtest2                |
    | sbtest2_bk03211652     |
    +------------------------+
    4 rows in set (0.00 sec)
    
    mysql> select count(*) from sbtest2_bk03211652;
    +----------+
    | count(*) |
    +----------+
    |     1000 |
    +----------+
    1 row in set (0.00 sec)
    
    mysql> select count(*) from sbtest2;
    +----------+
    | count(*) |
    +----------+
    |     1000 |
    +----------+
    1 row in set (0.00 sec)
    
    mysql> select count(*) from sbtest1;
    +-----------+
    | count(*)  |
    +-----------+
    | 100000000 |
    +-----------+
    1 row in set (19.39 sec)
    
    mysql> select count(*) from sbtest1_bk03211652;
    +-----------+
    | count(*)  |
    +-----------+
    | 100000000 |
    +-----------+
    1 row in set (4.39 sec)
    
    mysql> show processlist;

FAQ

Pourquoi les données de la table cible de restauration sont-elles vides ?

Assurez-vous que la tâche actuelle a atteint l'étape « Restauration de la base de données et de la table sur le nœud principal » et respecte les conditions suivantes :

  • Les informations de la table figurent dans la liste information_schema.fast_import_tablespaces.

  • Ou bien l'opération SQL dbms_rman.import est en cours d'exécution et respecte les conditions décrites dans Précautions.

Si le volume de données de la table est très important, l'interrogation des tables en état de restauration a-t-elle d'autres impacts ?

La fonctionnalité d'importation rapide est principalement utilisée pour la vérification rapide et la restauration des données. Tenez compte des points suivants :

  • L'interrogation des tables en cours de restauration a un impact équivalent sur le cluster de base de données à celui de l'interrogation de tables normales ayant le même volume de données.

  • Nous vous recommandons de ne pas effectuer d'opérations d'interrogation continues, de longue durée et à grande échelle sur les tables en cours de restauration.

Pourquoi une erreur se produit-elle lors de l'exécution d'opérations de mise à jour sur la table cible de restauration ?

Les tables répertoriées dans la liste information_schema.fast_import_tablespaces et les tables pour lesquelles l'opération SQL dbms_rman.import est en cours d'exécution sont actuellement en cours de restauration ou sur le point de l'être. Ces tables n'autorisent que l'accès en lecture seule et ne prennent pas en charge les opérations de mise à jour ou de modification.

mysql> select * from information_schema.fast_import_tablespaces;
+----------------+-------------------------+-----------------------------------------------------------+
| LOCAL_SPACE_ID | SPACE_NAME              | REMOTE_DATA_PATH                                          |
+----------------+-------------------------+-----------------------------------------------------------+
|             24 | test/sbtest2_bk03211708 | xxx/test/sbtest2_bk03211708.ibd                           |
+----------------+-------------------------+-----------------------------------------------------------+
1 row in set (0.00 sec)

mysql> delete from sbtest2_bk03211708 limit 10;
ERROR 1288 (HY000): The target table sbtest2_bk03211708 of the DELETE is not updatable
mysql>