Mysql
 sql >> Base de données >  >> RDS >> Mysql

Meilleures façons de réparer une table InnoDB corrompue dans MySQL

Résumé :  Dans cet article, nous aborderons certaines des meilleures façons de réparer une table InnoDB corrompue dans MySQL, qui peut être corrompue en raison d'une panne matérielle, d'un plantage du serveur MySQL et d'autres raisons. Ces méthodes comprennent une procédure par étapes pour réparer manuellement la table InnoDB corrompue ou en utilisant le logiciel de réparation MySQL.

À partir de la version 5.5 de MySQL, InnoDB est utilisé comme moteur de stockage par défaut pour toutes les nouvelles tables d'une base de données MySQL. L'avantage d'InnoDB est qu'il prend en charge la récupération après incident. Ainsi, il ne peut pas être corrompu facilement, mais lorsque c'est le cas, cela peut se produire en raison d'un plantage du serveur MySQL après un redémarrage, d'une panne matérielle ou de bogues dans la plate-forme sous-jacente, etc.

Lorsqu'une table InnoDB est corrompue, les données qu'elle contient deviennent illisibles et inaccessibles. De plus, une tentative de lecture à partir d'une table corrompue peut entraîner le blocage du serveur MySQL.

Comment réparer une table InnoDB corrompue dans MySQL ?

Remarque : Avant de tenter de réparer la table InnoDB corrompue, assurez-vous d'abord de sauvegarder vos fichiers de base de données MySQL.

Voici les moyens par lesquels vous pouvez réparer la table de base de données InnoDB corrompue

1. Réparer manuellement la table InnoDB corrompue

Vous aurez rarement besoin de réparer les tables InnoDB, car le moteur de stockage permet d'effectuer une récupération sur incident qui peut résoudre la plupart des problèmes une fois le serveur redémarré. Cependant, il peut arriver que vous deviez reconstruire ou réparer manuellement une table corrompue. Voici comment procéder :

Étape 1 :Redémarrez le service MySQL

Redémarrez le service MySQL pour vérifier si vous pouvez accéder au serveur en procédant comme suit :

  1. Ouvrez la fenêtre Exécuter en cliquant sur 'Windows+R' clés ensemble.
  2. Tapez msc et appuyez sur Entrée .
  3. Depuis les Services fenêtre, recherchez le service MySQL et faites un clic droit dessus, puis cliquez sur redémarrer .

Si le serveur est accessible, passez à l'étape 3. Mais s'il ne démarre pas ou continue de planter, utilisez l'option innodb_force_recovery expliquée à l'étape suivante.

Étape 2 :Forcer la récupération InnoDB

Activer le innodb_force_recovery option dans le fichier de configuration MySQL my.cnf pour retrouver l'accès à la base de données MySQL et à sa table corrompue. Pour ce faire, suivez ces étapes :

  • Ouvrez le fichier my.cnf et ajoutez la ligne de code suivante dans la section [mysqld] :
[mysqld]
Innodb_force_recovery=1

  • Enregistrez et fermez le fichier de configuration.
  • Essayez de redémarrer à nouveau le service MySQL.

Étape 3 :Supprimez la table corrompue

Une fois que vous pouvez accéder à la table corrompue, videz les données de la table dans un nouveau fichier à l'aide de la commande mysqldump suivante :

mysqldump –u user –p db_name table_name > single_dbtable_dump.sql

Remarque : Ajoutez le nom de la table séparé par des espaces dans la commande ci-dessus pour vider plusieurs tables.

Maintenant, supprimez la table corrompue de la base de données :

mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Étape 4 :Restaurer la table

Utilisez le fichier de vidage nouvellement créé pour restaurer la table à partir du fichier de vidage (c'est-à-dire single_dbtable_dump) :

mysql –u user –p < single_dbtable_dump.sql

Étape 5 :Redémarrez MySQL en mode normal

Lorsque la table corrompue est réparée, arrêtez le service MySQL et désactivez le mode de récupération InnoDB en saisissant la ligne suivante dans la section [mysqld] :

#innodb_force_recovery=...

Redémarrez maintenant le service MySQL en mode normal.

Remarque : Si vous n'avez pas utilisé l'option innodb_force_recovery, arrêtez et redémarrez simplement le serveur en mode normal.

2. Corrigez la table InnoDB corrompue à l'aide du logiciel de réparation MySQL

L'utilisation d'une valeur "innodb_force_recovery" supérieure à 4 pour retrouver l'accès à la base de données peut entraîner une corruption des données. De plus, en cas de corruption grave, vous risquez de ne pas redémarrer votre serveur MySQL. Vous pouvez surmonter ces limitations de la réparation manuelle de la table corrompue de la base de données MySQL en utilisant un logiciel de réparation MySQL spécialisé. comme Stellar Repair pour MySQL.

Le logiciel peut réparer et restaurer les tables InnoDB de la base de données MySQL tout en gardant ses données intactes. En outre, il aide à récupérer les propriétés des tables, les clés, les contraintes de relation, etc.

Cet utilitaire de réparation de base de données MySQL aide à réparer les tables InnoDB et MyISAM créées sur les systèmes d'exploitation Windows et Linux.

Les étapes pour réparer la table InnoDB corrompue à l'aide du logiciel sont les suivantes :

  1. Téléchargez, installez et exécutez gratuitement Stellar Repair for MySQL
  2. Depuis le Sélectionner le dossier de données boîte de dialogue, sélectionnez la version de MySQL que vous utilisez, puis cliquez sur OK .
  3. Depuis la Sélectionner la base de données , choisissez la base de données que vous souhaitez réparer, puis cliquez sur Réparer .
  4. Un aperçu de la base de données, de la table et des autres composants récupérables réparés s'affiche dans la fenêtre d'aperçu du logiciel.
  5. Sélectionnez la ou les tables que vous souhaitez restaurer, puis cliquez sur Enregistrer dans le menu Fichier.
  6. Depuis la base de données de sauvegarde case, choisissez MySQL sous Enregistrer sous , et entrez les informations d'identification requises pour se connecter au serveur. Cliquez sur Enregistrer .

Vous pouvez trouver le fichier de base de données réparé dans un nouveau dossier au même endroit où votre base de données d'origine est stockée.

Vous pouvez trouver le fichier de base de données réparé dans un nouveau dossier au même endroit où votre base de données d'origine est stockée.

Conclusion

La corruption dans la table InnoDB peut rendre les données qu'elle contient illisibles, et si elle n'est pas traitée avec le temps, cela peut même entraîner un plantage du serveur et des temps d'arrêt imprévus. Vous pouvez réparer la table InnoDB corrompue en suivant la procédure manuelle par étapes. Cependant, le processus manuel de réparation des tables InnoDB peut entraîner une perte de données et ne pas fournir le résultat escompté.

Cependant, en utilisant un outil de réparation de base de données MySQL tel que Stellar Repair for MySQL, vous pouvez réparer les tables sur le moteur de stockage InnoDB et le restaurer à son état fonctionnel d'origine. Cet utilitaire de réparation de fichiers aide à réparer la base de données MySQL créée sur les systèmes d'exploitation Windows et Linux. Il peut non seulement réparer les tables InnoDB, mais également corriger la corruption des tables MyISAM de la base de données MySQL.