Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12936|Répondre: 0

[Source] Apprendre à utiliser Myisamchk pour la récupération de plantage MySQL

[Copié le lien]
Publié sur 15/11/2017 13:23:05 | | |

« tbl_name.frm » fichier de définition de table (table) « tbl_name. MYD « Fichier de données » tbl_name. Fichier index MYI"
Chacun de ces trois types de fichiers peut souffrir de différentes formes de corruption, mais le problème survient le plus souvent dans les fichiers de données et les fichiers index.
myisamchk crée un ". MYD » (données) fonctionne, il fonctionne en supprimant l’ancien fichier « . MYD et renommer le nouveau fichier avec le nom original pour mettre fin à la phase de réparation. Si vous utilisez --quick, myisamchk ne crée pas un temporaire ". MYD » en supposant ». MYD » est correct et ne crée qu’un nouveau fichier index, sans toucher ». MYD », qui est sûr car myisamchk détecte automatiquement ». MYD" est corrompu et dans ce cas, abandonnez la réparation. Vous pouvez aussi donner à myisamchk deux options — rapides. Dans ce cas, myisamchk ne renonce pas à certaines erreurs (comme la répétition des touches), mais tente plutôt de modifier le ". MYD" pour les résoudre. En général, elle n’est utile que si vous mettez en place une correction normale avec trop peu d’espace libre sur le disque, en utilisant les deux options rapides. Dans ce cas, vous devriez au moins faire une sauvegarde avant d’exécuter myisamchk.
1. Comment vérifier les erreurs dans le tableau
Pour vérifier une table, utilisez la commande suivante :
mon isamchk tbl_name
Cela détecte 99,99 % de toutes les erreurs. Ce qu’il ne peut pas découvrir, c’est que la corruption n’est impliquée que dans les fichiers de données (ce qui est rare). Si vous voulez vérifier une table, vous devriez généralement exécuter myisamchk sans cette option ou utiliser l’une des options -s ou --silent.
myisamchk -e tbl_name
Il effectue une vérification complète des données (-e signifie « vérification étendue »). Il effectue une vérification de lecture par clé sur chaque ligne pour confirmer qu’elles pointent bien vers la bonne ligne. Cela peut prendre beaucoup de temps sur une grande table avec de nombreuses clés. myisamchk s’arrête généralement après avoir détecté la première erreur. Si vous souhaitez plus d’informations, vous pouvez ajouter l’option --verbose(-v). Cela fait que myisamchk continue jusqu’à un maximum de 20 erreurs. En usage général, un myisamchk simple (sans autres arguments que le nom de la table) est suffisant.
myisamchk -e -i tbl_name
Comme pour la commande précédente, mais l’option -i dit à myisamchk d’imprimer aussi quelques statistiques.
2. Comment réparer la table
Le symptôme d’une table corrompue est généralement une rupture de requête inattendue, et vous pouvez voir, par exemple, ces erreurs :
« tbl_name.frm » est verrouillé et ne peut pas être modifié.
Impossible de trouver le fichier « tbl_name. MYI"(Errcode :###)。
Obtenez l’erreur ### du traitement de table (dans ce cas, l’erreur 135 est une exception).
Fin inattendue du dossier.
Les dossiers d’archives ont été détruits.
Dans ces cas, vous devez réparer la table. myisamchk détecte et corrige généralement la plupart des problèmes possibles.
Le processus de réparation se compose de jusqu’à 4 étapes, décrites ci-dessous. Avant de commencer, vous devriez télécharger les permissions du répertoire de base de données et des fichiers de checklist pour vous assurer qu’ils sont lisibles par les utilisateurs Unix utilisant mysqld (et vous, car vous avez besoin d’accéder au fichier que vous vérifiez). S’il refuse de modifier le fichier, ils doivent aussi être écrivables pour vous.
Phase 1 : Vérifiez votre tableau
Courir
mon isamchk *. MYI
ou (myisamchk -e *. Je le saurai, si tu as plus de temps). Utilisez l’option -s (silence) pour désactiver les informations inutiles.

Le format de fichier utilisé par MySQL pour stocker les données a été largement testé, mais il existe toujours des conditions externes pouvant corrompre les tables de la base de données :
Le processus mysqld est arrêté en une seule écriture ; Un arrêt inattendu de l’ordinateur (par exemple, si l’ordinateur perd l’alimentation) ; Une erreur matérielle.
Ce chapitre décrit comment vérifier et gérer la corruption des données dans une base MySQL. Si votre table est beaucoup abîmée, vous devriez essayer de comprendre pourquoi ! Voir G.1 Débogage d’un serveur MySQL.
Lors de la récupération après plantage, il est important de comprendre que chaque table dans une base de données correspond tbl_name aux 3 fichiers du répertoire de la base de données




Précédent:mysql #1062 – Duplique '1' pour la clé 'PRIMARY'
Prochain:MySQL voit des instructions SQL exécutées en temps réel
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com