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
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
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.RemarqueLorsque 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 Importen 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 poolsont 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 :
Initialisation de la tâche
Restauration complète sur le nœud temporaire
Restauration incrémentielle sur le nœud temporaire (si nécessaire)
Prétraitement de la restauration de la base de données et de la table
Restauration de la base de données et de la table
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.
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;