Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 12936|Απάντηση: 0

[Πηγή] Σας διδάσκει πώς να χρησιμοποιείτε το Myisamchk για ανάκτηση σφαλμάτων MySQL

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 15/11/2017 1:23:05 μ.μ. | | |

Αρχείο ορισμού πίνακα "tbl_name.frm" (πίνακας) "tbl_name. MYD " Αρχείο δεδομένων "tbl_name. MYI"
Καθένας από αυτούς τους 3 τύπους αρχείων μπορεί να υποφέρει από διαφορετικές μορφές καταστροφής, αλλά το πρόβλημα εμφανίζεται συχνότερα σε αρχεία δεδομένων και αρχεία ευρετηρίου.
Το myisamchk δημιουργεί ένα ". MYD" (δεδομένα) για να λειτουργήσει, λειτουργεί αφαιρώντας το παλιό αρχείο ". MYD και μετονομάστε το νέο αρχείο στο αρχικό όνομα αρχείου για να τερματίσετε τη φάση επισκευής. Εάν χρησιμοποιείτε --quick, το myisamchk δεν δημιουργεί μια προσωρινή ". MYD", απλώς υποθέτοντας". MYD" είναι σωστό και δημιουργεί μόνο ένα νέο αρχείο ευρετηρίου, χωρίς να αγγίζει". MYD", το οποίο είναι ασφαλές επειδή το myisamchk εντοπίζει αυτόματα". MYD" είναι κατεστραμμένο και σε αυτήν την περίπτωση, εγκαταλείψτε την επισκευή. Μπορείτε επίσης να δώσετε στο myisamchk δύο -- γρήγορες επιλογές. Σε αυτήν την περίπτωση, το myisamchk δεν εγκαταλείπει ορισμένα σφάλματα (όπως η επανάληψη πλήκτρων), αλλά αντίθετα προσπαθεί να τροποποιήσει την επέκταση ". MYD" για την επίλυσή τους. Συνήθως, είναι χρήσιμο μόνο εάν εφαρμόσετε μια κανονική επιδιόρθωση σε πολύ λίγο ελεύθερο χώρο στο δίσκο, χρησιμοποιώντας τις δύο --γρήγορες επιλογές. Σε αυτήν την περίπτωση, θα πρέπει τουλάχιστον να δημιουργήσετε ένα αντίγραφο ασφαλείας πριν εκτελέσετε το myisamchk.
1. Πώς να ελέγξετε τα σφάλματα στον πίνακα
Για να ελέγξετε έναν πίνακα, χρησιμοποιήστε την ακόλουθη εντολή:
Myisamchk tbl_name
Αυτό καλύπτει το 99,99% όλων των σφαλμάτων. Αυτό που δεν μπορεί να ανακαλύψει είναι ότι η διαφθορά εμπλέκεται μόνο σε αρχεία δεδομένων (κάτι που είναι ασυνήθιστο). Εάν θέλετε να ελέγξετε έναν πίνακα, θα πρέπει συνήθως να εκτελέσετε το myisamchk χωρίς την επιλογή ή να χρησιμοποιήσετε οποιαδήποτε από τις επιλογές -s ή --silent.
myisamchk -e tbl_name
Κάνει έναν εντελώς ενδελεχή έλεγχο δεδομένων (-e σημαίνει "εκτεταμένος έλεγχος"). Κάνει έναν έλεγχο ανάγνωσης ανά πλήκτρο σε κάθε γραμμή για να επιβεβαιώσει ότι δείχνουν στη σωστή γραμμή. Αυτό μπορεί να διαρκέσει πολύ σε ένα μεγάλο τραπέζι με πολλά κλειδιά. Το Myisamchk συνήθως σταματά αφού βρει το πρώτο σφάλμα. Εάν θέλετε περισσότερες πληροφορίες, μπορείτε να προσθέσετε την επιλογή --verbose(-v). Αυτό κάνει το myisamchk να συνεχίσει μέχρι το πολύ 20 σφάλματα. Σε γενική χρήση, ένα απλό myisamchk (χωρίς άλλα ορίσματα εκτός από το όνομα του πίνακα) είναι αρκετό.
myisamchk -e -i tbl_name
Όπως και η προηγούμενη εντολή, αλλά η επιλογή -i λέει στο myisamchk να εκτυπώσει και ορισμένα στατιστικά στοιχεία.
2. Πώς να επισκευάσετε το τραπέζι
Το σύμπτωμα ενός κατεστραμμένου πίνακα είναι συνήθως μια απροσδόκητη διακοπή ερωτήματος και μπορείτε να δείτε, για παράδειγμα, αυτά τα σφάλματα:
Το "tbl_name.frm" είναι κλειδωμένο και δεν μπορεί να αλλάξει.
Δεν είναι δυνατή η εύρεση του αρχείου "tbl_name. MYI"(Errcode :### )。
Λάβετε το σφάλμα ### από τον επεξεργαστή πίνακα (σε αυτήν την περίπτωση, το σφάλμα 135 αποτελεί εξαίρεση).
Απροσδόκητο τέλος αρχείου.
Τα αρχεία αρχείων καταστράφηκαν.
Σε αυτές τις περιπτώσεις, πρέπει να διορθώσετε τον πίνακα. Το Myisamchk συνήθως εντοπίζει και διορθώνει τα περισσότερα πράγματα που πάνε στραβά.
Η διαδικασία επισκευής αποτελείται από έως και 4 στάδια, που περιγράφονται παρακάτω. Πριν ξεκινήσετε, θα πρέπει να εκχωρήσετε δικαιώματα cd στον κατάλογο της βάσης δεδομένων και στα αρχεία της λίστας ελέγχου για να βεβαιωθείτε ότι είναι αναγνώσιμα από χρήστες Unix που εκτελούν mysqld (και εσείς, καθώς χρειάζεστε πρόσβαση στο αρχείο που ελέγχετε). Εάν αρνηθεί να τροποποιήσει το αρχείο, πρέπει επίσης να είναι εγγράψιμα σε εσάς.
Φάση 1: Ελέγξτε το τραπέζι σας
Τρέξιμο
myisamchk *. ΜΥΙ
ή (myisamchk -e *. MYI, αν έχετε περισσότερο χρόνο). Χρησιμοποιήστε την επιλογή -s (σιωπή) για να απενεργοποιήσετε τις περιττές πληροφορίες.

Η μορφή αρχείου που χρησιμοποιείται από τη MySQL για την αποθήκευση δεδομένων έχει δοκιμαστεί εκτενώς, αλλά υπάρχουν πάντα εξωτερικές συνθήκες που μπορούν να προκαλέσουν καταστροφή των πινάκων της βάσης δεδομένων:
Η διαδικασία MySQL σκοτώνεται σε μία εγγραφή. Απροσδόκητος τερματισμός λειτουργίας του υπολογιστή (για παράδειγμα, εάν ο υπολογιστής διακοπεί η τροφοδοσία). Σφάλμα υλικού.
Αυτό το κεφάλαιο περιγράφει τον τρόπο ελέγχου και χειρισμού καταστροφής δεδομένων σε μια βάση δεδομένων MySQL. Εάν το τραπέζι σας έχει υποστεί μεγάλη ζημιά, θα πρέπει να προσπαθήσετε να μάθετε γιατί! Δείτε G.1 Εντοπισμός σφαλμάτων διακομιστή MySQL.
Κατά την εκτέλεση ανάκτησης σφαλμάτων, είναι σημαντικό να κατανοήσετε ότι κάθε πίνακας σε μια βάση δεδομένων tbl_name αντιστοιχεί στα 3 αρχεία στον κατάλογο της βάσης δεδομένων




Προηγούμενος:mysql #1062 – Διπλότυπη καταχώριση «1» για το κλειδί «ΠΡΩΤΕΥΟΝ»
Επόμενος:Η MySQL προβάλλει δηλώσεις SQL που εκτελούνται σε πραγματικό χρόνο
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com