recherche
Maisonbase de donnéestutoriel mysqlRollback MySQL (partage du résumé)

Cet article vous apporte des connaissances pertinentes sur mysql. Il organise principalement les problèmes liés à la restauration et présente principalement le mécanisme de restauration et de restauration de la librairie. Examinons-le ensemble, j'espère qu'il sera utile à tout le monde.

Rollback MySQL (partage du résumé)

Apprentissage recommandé : Tutoriel vidéo mysql

Nous rencontrons souvent des scénarios dans lesquels nous exploitons une grande table et constatons que l'opération prend trop de temps ou affecte les affaires en ligne, et nous souhaitons annuler l'opération de grande table. Après l'arrêt des opérations sur des tables volumineuses, l'attente de la restauration est un processus très long. Bien que vous connaissiez certaines méthodes pour réduire le temps et que vous soyez impressionné par l'intégrité des données dans l'environnement de production, vous pouvez choisir de ne pas intervenir.

Annulation de transaction

Une transaction est une unité d'exécution dans une base de données relationnelle, et vous pouvez choisir de valider ou d'annuler via le contrôle de l'étape finale. Effectuez des opérations de restauration dans divers scénarios où l'intégrité ne peut pas être garantie. La restauration dans MySQL s'effectue via le journal d'annulation, qui contient des informations sur la manière d'annuler les dernières modifications liées à la transaction. Les journaux d'annulation existent dans le segment du journal d'annulation et le segment du journal d'annulation est inclus dans le segment d'annulation. Le segment d'annulation se trouve dans l'espace table d'annulation et dans l'espace table temporaire global.
La relation est la suivante :

Rollback MySQL (partage du résumé)

  • fichier d'annulation

    Rollback MySQL (partage du résumé)

mysql > show variables like '%undo%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| innodb_max_undo_log_size | 1073741824         |
| innodb_undo_directory    | /opt/data8.0/mysql |
| innodb_undo_log_encrypt  | OFF                |
| innodb_undo_log_truncate | ON                 |
| innodb_undo_tablespaces  | 2                  |
+--------------------------+--------------------+
5 rows in set (0.00 sec)

Un espace table temporaire (ibtmp1) pointé par global Temporary, utilisé pour stocker les segments d'annulation pour les modifications apportées aux tables temporaires créées par les utilisateurs.

Rollback MySQL (partage du résumé)

mysql > SELECT @@innodb_temp_data_file_path;
+-------------------------------+
| @@innodb_temp_data_file_path  |
+-------------------------------+
| ibtmp1:128M:autoextend:max:30G |
+-------------------------------+

Comprenez quels fichiers sont inclus dans la restauration, continuez à lire.

Mécanisme de restauration :

Le contrôle de restauration MySQL est coordonné par le moteur interne innodb et ne fournit pas de mécanisme contrôlé par l'homme. Les paramètres d'annulation MySQL actuellement fournis sont les suivants :

mysql> SHOW VARIABLES LIKE  '%ROLL%';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| innodb_rollback_on_timeout | OFF   |
| innodb_rollback_segments   | 128   |
+----------------------------+-------+

innodb_rollback_on_timeout :

InnoDB par défaut n'annule la dernière instruction que lorsque la transaction expire. Si --InnoDB -rollback-on-timeout est spécifié, un délai d'expiration de transaction entraînera l'abandon et l'annulation par InnoDB de la totalité de la transaction. Il est désactivé par défaut, une fois l'heure spécifiée, comme l'échec de la restauration. Il est concevable qu'il y ait des incohérences dans les données. Cette méthode n'est pas conseillée.

Innodb_rollback_segments (1~128) :

Définit le nombre de segments d'annulation alloués à chaque espace table d'annulation et le nombre d'espaces table temporaires globaux alloués aux transactions qui génèrent des enregistrements d'annulation.
Le nombre de transactions prises en charge par le segment de restauration : dépend du nombre d'emplacements d'annulation dans le segment de restauration et du nombre de journaux d'annulation requis pour chaque transaction

Le nombre d'emplacements d'annulation dans le segment de restauration officiellement fourni est lié à InnoDB taille de la page :

Rollback MySQL (partage du résumé)

À partir de la dernière implémentation du code source MySQL8.0.27, storageinnobaseincludetrx0rseg.h:

/* Number of undo log slots in a rollback segment file copy 
这里 UNIV_PAGE_SIZE正常页面的大小  即 1024*/
#define TRX_RSEG_N_SLOTS (UNIV_PAGE_SIZE / 16)

/* Maximum number of transactions supported by a single rollback segment 
单个回滚段支持的最大事务数1024/2=512
*/
#define TRX_RSEG_MAX_N_TRXS (TRX_RSEG_N_SLOTS / 2)

Par défaut, la page est divisée en 1024 emplacements (TRX_RSEG_N_SLOTS), et chaque emplacement correspond à un objet de journal d'annulation, donc en théorie, InnoDB peut prendre en charge 128 * 512 = 65 536 transactions ordinaires.
Pour la partie principale, veuillez vous référer à MySQL · Caractéristiques du moteur · Itinérance d'annulation du journal InnoDB
Fournit officiellement des scénarios de lecture et d'écriture simultanés de restauration d'undbo :

Rollback MySQL (partage du résumé)

Du principe d'appel au scénario d'application réel :
Pour la capacité pour prendre en charge les segments de restauration, toujours considérables, mais souvent très lents lors de l'exécution de restaurations par lots importants. En particulier lors du traitement en ligne, la restauration de 100 000 lignes peut prendre 10 minutes. Ou même plus longtemps.
Ensuite, préparez 5 000 W de données de table unique via sysbench. Sans charge, supprimez-les pendant environ 1 minute, puis utilisez kill -9 pour arrêter de force la transaction et annuler la transaction :

Rollback MySQL (partage du résumé)

Évidemment, l'effet de redémarrer c'est mieux.
Cependant, la méthode kill -9 peut facilement endommager la page de données et présente un grand risque. La base de données est également sollicitée au quotidien. On peut imaginer que le coût de l'annulation de transactions volumineuses est très élevé.

Résumé

Les opérations de restauration importantes doivent être évitées autant que possible, car elles consomment des ressources et des performances de base de données et peuvent entraîner des accidents de production majeurs dans un environnement de production. Si l'annulation d'une transaction importante ne peut être évitée, vous pouvez utiliser les méthodes suivantes :

  • Pour les opérations par lots, vous pouvez les soumettre par lots, par exemple, 1 000 à 5 000 lignes, etc.
  • L'espace d'annulation et l'espace de table temporaire global peuvent être ajustés de manière appropriée. Il est recommandé d'utiliser 4 fichiers d'annulation et d'initialiser 1 Go d'ibtmp1 global. Dans un environnement à haute disponibilité et garantir la cohérence des données, vous pouvez promouvoir l'esclave vers un nouveau maître, fournir des services et attendre l'annulation des transactions volumineuses.
  • Dans les cas extrêmes, vous pouvez utiliser kill -9 pour redémarrer l'opération. Étant donné que la quantité de données est très importante, la récupération de MySQL sera lente. À ce stade, vous devez attendre que MySQL plante et récupère. quantité de données, le temps d'attente est également différent
  • Si vous redémarrez Pendant le processus, si la page de données est endommagée ou si la restauration est ignorée, vous pouvez passer innodb_force_recovery=3 (l'opération de restauration de la transaction n'est pas effectuée.)
  • Apprentissage recommandé :
tutoriel vidéo mysql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Place de MySQL: bases de données et programmationPlace de MySQL: bases de données et programmationApr 13, 2025 am 12:18 AM

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

MySQL: des petites entreprises aux grandes entreprisesMySQL: des petites entreprises aux grandes entreprisesApr 13, 2025 am 12:17 AM

MySQL convient aux petites et grandes entreprises. 1) Les petites entreprises peuvent utiliser MySQL pour la gestion des données de base, telles que le stockage des informations clients. 2) Les grandes entreprises peuvent utiliser MySQL pour traiter des données massives et une logique métier complexe pour optimiser les performances de requête et le traitement des transactions.

Que sont les lectures de Phantom et comment InNODB les empêche-t-il (verrouillage des touches suivantes)?Que sont les lectures de Phantom et comment InNODB les empêche-t-il (verrouillage des touches suivantes)?Apr 13, 2025 am 12:16 AM

INNODB empêche efficacement la lecture des fantômes via le mécanisme de blocage à clé suivante. 1) Le blocage de touche suivante combine le verrouillage des lignes et le verrouillage de l'espace pour verrouiller les enregistrements et leurs lacunes pour empêcher l'insertion de nouveaux enregistrements. 2) Dans les applications pratiques, en optimisant la requête et en ajustant les niveaux d'isolement, la concurrence des verrouillage peut être réduite et les performances de la concurrence peuvent être améliorées.

MySQL: Pas un langage de programmation, mais ...MySQL: Pas un langage de programmation, mais ...Apr 13, 2025 am 12:03 AM

MySQL n'est pas un langage de programmation, mais son langage de requête SQL a les caractéristiques d'un langage de programmation: 1. SQL prend en charge le jugement conditionnel, les boucles et les opérations variables; 2. Grâce aux procédures, déclencheurs et fonctions stockées, les utilisateurs peuvent effectuer des opérations logiques complexes dans la base de données.

MySQL: une introduction à la base de données la plus populaire au mondeMySQL: une introduction à la base de données la plus populaire au mondeApr 12, 2025 am 12:18 AM

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

L'importance de MySQL: stockage et gestion des donnéesL'importance de MySQL: stockage et gestion des donnéesApr 12, 2025 am 12:18 AM

MySQL est un système de gestion de base de données relationnel open source adapté au stockage, à la gestion, à la requête et à la sécurité des données. 1. Il prend en charge une variété de systèmes d'exploitation et est largement utilisé dans les applications Web et autres domaines. 2. Grâce à l'architecture client-serveur et à différents moteurs de stockage, MySQL traite efficacement les données. 3. L'utilisation de base comprend la création de bases de données et de tables, d'insertion, d'interrogation et de mise à jour des données. 4. L'utilisation avancée implique des requêtes complexes et des procédures stockées. 5. Les erreurs courantes peuvent être déboguées par le biais de la déclaration Explication. 6. L'optimisation des performances comprend l'utilisation rationnelle des indices et des instructions de requête optimisées.

Pourquoi utiliser MySQL? Avantages et avantagesPourquoi utiliser MySQL? Avantages et avantagesApr 12, 2025 am 12:17 AM

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Décrivez les mécanismes de verrouillage InNODB (verrous partagés, verrous exclusifs, verrous d'intention, verrous d'enregistrement, verrous d'écart, serrures à clé suivante).Décrivez les mécanismes de verrouillage InNODB (verrous partagés, verrous exclusifs, verrous d'intention, verrous d'enregistrement, verrous d'écart, serrures à clé suivante).Apr 12, 2025 am 12:16 AM

Les mécanismes de verrouillage d'InnoDB incluent des verrous partagés, des verrous exclusifs, des verrous d'intention, des verrous d'enregistrement, des serrures d'écart et des mèches suivantes. 1. Le verrouillage partagé permet aux transactions de lire des données sans empêcher d'autres transactions de lire. 2. Lock exclusif empêche les autres transactions de lire et de modifier les données. 3. Le verrouillage de l'intention optimise l'efficacité de verrouillage. 4. Enregistrement de l'indice de verrouillage d'enregistrement. 5. Écart d'enregistrement de l'indice des verrous de verrouillage de l'espace. 6. Le verrouillage de la touche suivante est une combinaison de verrouillage des enregistrements et de verrouillage de l'écart pour garantir la cohérence des données.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP