In diesem Blog wird auch erklärt, wie MySQL-Reparatursoftware helfen kann, wenn Sie nicht in der Lage sind, die Datenbank zu reparieren und wiederherzustellen.
Eine Datenbankbeschädigung im MySQL-Server kann, wenn sie nicht richtig behandelt oder rechtzeitig behoben wird, zu erheblichen Ausfallzeiten und Datenverlusten führen.
Leider bemerken Sie möglicherweise nicht einmal, dass Ihr MySQL-Server korrupt geworden ist, bis der Server auf eine korrupte Tabelle zugreift oder der Server heruntergefahren wird.
Was verursacht eine Datenbankbeschädigung im MySQL-Server?
Im Folgenden sind einige der häufigsten Gründe für die Korruption der MySQL-Server-Datenbank:
- Ausfall der Server-Hardware.
- Der MySQL-Prozess wird mitten beim Schreiben auf die Festplatte beendet.
- Software von Drittanbietern für den Zugriff auf die Datenbank stürzt unerwartet ab.
- Benutzer, die versuchen, Datenbankdateien manuell in das MySQL-Datenverzeichnis (oder datadir) zu verschieben.
- Fehler in der MySQL-Server-Software.
Abgesehen von diesen Gründen hängt die Beschädigung der Datenbank auch davon ab, ob Sie MyISAM oder InnoDB als Speichermaschine verwenden. Das liegt daran, dass MyISAM-Tabellen anfälliger für Korruption sind.
Was ist zu tun, wenn die MySQL-Datenbank beschädigt wird?
Wenn die MySQL-Datenbank beschädigt ist, wird normalerweise empfohlen, sie von der letzten bekannten guten Sicherungskopie wiederherzustellen. Wenn Sie jedoch keine Sicherungskopie haben, können Wiederherstellungsvorgänge helfen, die Beschädigung der MySQL-Datenbank zu beheben.
Selbst wenn ein Backup vorhanden ist, kann der Versuch einer Wiederherstellung die bessere Option sein, da es weniger Zeit in Anspruch nimmt, die Datenbank wieder online zu bringen.
Schritte zur Fehlerbehebung bei einer Beschädigung der MySQL-Datenbank
Versuchen Sie, die Beschädigung der Datenbank zu beheben, indem Sie die unten aufgeführten Schritte in der richtigen Reihenfolge ausführen:
HINWEIS: Diese Schritte funktionieren nur, wenn der MySQL-Datenbankserver läuft. Wenn der MySQL-Dienst jedoch nicht mehr läuft (abgestürzt ist) und Sie sich nicht mehr in den MySQL-Befehlszeilen-Client einloggen können, bleibt nur noch die Möglichkeit, die Datenbank von einem guten bekannten Backup wiederherzustellen. Gibt es keine Sicherungskopie, kann die Verwendung einer speziellen MySQL-Reparatursoftware helfen.
Schritt 1 – Sichern Sie Ihre Datenbank
Bevor Sie versuchen, die beschädigte Datenbank zu reparieren, sollten Sie zunächst eine Sicherungskopie Ihrer Datenbankdateien erstellen.
Auch wenn die Datenbank bereits beschädigt ist, trägt die Sicherung dazu bei, das Risiko weiterer Schäden zu minimieren, die durch einen Wiederherstellungsvorgang verursacht werden können.
Gehen Sie folgendermaßen vor, um alle db-Dateien zu sichern:
- Stoppen Sie den MySQL-Server.
- Erstellen Sie eine Sicherungskopie Ihres Datenverzeichnisses.
Schritt 2 – Datenbank wieder in den Wiederherstellungsmodus bringen
HINWEIS: Wenn MySQL MyISAM als Standardspeicher-Engine verwendet, fahren Sie mit Schritt 3 fort, um zu erfahren, wie Sie die beschädigte Datenbank reparieren können.
Wenn InnoDB die Standard-Speicher-Engine von MySQL ist, reicht es in einigen Fällen von Datenbankbeschädigung aus, eine oder einige wenige beschädigte Tabellen zu dumpen, zu löschen und neu zu erstellen. Verwenden Sie dazu die Anweisung CHECK TABLE, um die beschädigten Tabellen zu überprüfen.
Lesen Sie dies: Wie repariert man MySQL-Datenbanktabellen ohne Ausfallzeiten?
Wenn die Datenbank schwer beschädigt ist, werden Sie wahrscheinlich Probleme beim Starten Ihres MySQL-Servers haben. In einem solchen Fall kann das Erzwingen der InnoDB-Wiederherstellung beim Starten von MySQL helfen.
Um die Option “innodb_force_recovery” zu verwenden, gehen Sie wie folgt vor:
- Öffnen Sie die MySQL-Konfigurationsdatei und fügen Sie die folgende Codezeile in den Abschnitt [mysqld] ein, bevor Sie den Server neu starten:
HINWEIS: Der Wert innodb_force_recovery ist standardmäßig auf “0” gesetzt. Um jedoch InnoDB zu starten und MySQL-Tabellen zu dumpen, müssen Sie den Wert auf “1” setzen und den Wert schrittweise erhöhen (von 1 bis 6).
Beachten Sie jedoch, dass das Setzen des Wertes der Option innodb_force_recovery auf 4 oder höher die Wahrscheinlichkeit einer Datenbeschädigung erhöht.
[mysqld]
innodb_force_recovery=1
- Speichern und schließen Sie die MySQL-Konfigurationsdatei, und versuchen Sie dann, den MySQL-Dienst erneut zu starten.
- Wenn Sie in der Lage sind, MySQL zu starten, dumpen Sie alle Ihre MySQL-Datenbanken in eine einzige Datei, indem Sie den folgenden Befehl verwenden:
mysqldump -u [Benutzer] -p[Kennwort] –alle-Datenbanken > all_databases.sql
HINWEIS: Die Dump-Datei in diesem Beispiel heißt all_databases.sql. Sie können sie jedoch nach Belieben ändern.
- Deaktivieren Sie anschließend den InnoDB-Wiederherstellungsmodus. Dazu kommentieren Sie die folgende Zeile im Abschnitt [mysqld] aus:
#innodb_force_recovery=…
- Speichern Sie die Änderungen in der Konfigurationsdatei und starten Sie dann den MySQL-Server.
- Stellen Sie die Datenbanken aus dem Dump (Sicherungsdatei) wieder her, den Sie in Schritt 3 erstellt haben:
mysql> Quelle all_databases.sql
Lesen Sie mehr darüber: Die besten Methoden zur Reparatur von beschädigten InnoDB-Tabellen in MySQL.
Schritt 3 – MyISAM-Tabellen mit myisamchk reparieren
Führen Sie den Befehl myisamchk aus, um MyISAM-Tabellen zu reparieren, indem Sie die folgenden Schritte ausführen:
HINWEIS: Der Befehl myisamchk funktioniert nicht für die Tabellen, die die InnoDB-Engine verwenden.
- Stoppen Sie den MySQL-Server.
- Verwenden Sie den folgenden Befehl, um fehlerhafte Tabellen zu überprüfen:
myisamchk-Tabelle
- Um alle Tabellen in einer beschädigten Datenbank zu überprüfen, geben Sie folgenden Befehl ein:
myisamchk *.MYI
- Versuchen Sie, eine beschädigte Tabelle zu reparieren, indem Sie den folgenden Befehl ausführen:
myisamchk -wiederherstellen TABELLE
- Starten Sie den MySQL-Server.
Unter diesem Link finden Sie ausführliche Informationen zum Thema “Wie repariert man eine MyISAM-Tabelle mit myisamchk?”.
Was, wenn nichts funktioniert?
Wenn die Schritte zur Fehlerbehebung das Problem nicht lösen können, verwenden Sie Stellar Repair for MySQL Software, um die beschädigte Datenbank zu reparieren und alle Objekte wiederherzustellen. Die Software kann MySQL-Datenbanken auf Windows- und Linux-Systemen reparieren.
Einige Gründe, warum Sie Stellar Repair for MySQL Software verwenden sollten
- Repariert MySQL-Tabellen, die InnoDB- (.frm, .ibdata, .idb) und MyISAM- (.frm, .myd, .myi) Datenbank-Engines verwenden.
- Stapelreparaturen mehrerer MySQL-Datenbanken in einem einzigen Prozess.
- Stellt alle Datenbankobjekte wie Schlüssel, Tabellen, Tabelleneigenschaften, Datentypen, Ansichten und Auslöser wieder her.
- Zeigt eine Vorschau der wiederherstellbaren Datenbankobjekte.
- Ermöglicht das Speichern der reparierten Datenbank in verschiedenen Dateiformaten wie MySQL, CSV, HTML und XLS.
- Unterstützt MySQL 8.x, 6.x, 5.x, 4.x und 3.x.
Schritte zur Reparatur beschädigter MySQL-Datenbank mit Stellar Repair for MySQL Software
Voraussetzungen:
- Der Speicherort der ‘ibdata’-Datei sollte genau derselbe sein wie der der MySQL-Datenbank.
- Vergewissern Sie sich, dass auf dem Ziellaufwerk genügend freier Speicherplatz vorhanden ist, um alle wiederhergestellten MySQL-Datenbanken zu speichern.
- MySQL muss auf Ihrem System installiert sein.
Schritt 1: Laden Sie die Software Stellar Repair for MySQL herunter, installieren und starten Sie sie.
Schritt 2: Wählen Sie im Fenster Datenordner auswählen die von Ihnen verwendete MySQL-Version aus.
Abbildung 2- Fenster “Datenordner auswählen
Schritt 3: Das Fenster Datenbank auswählen wird angezeigt. Wählen Sie die Datenbank aus, die Sie reparieren möchten.
Abbildung 3- Fenster Datenbank auswählen
Schritt 4: Klicken Sie auf Reparieren, um den Reparaturvorgang zu starten.
Schritt 5: Wenn das Dialogfeld Reparieren abgeschlossen angezeigt wird, klicken Sie auf OK.
Schritt 6: Die Software zeigt eine Vorschau der reparierten Datenbank und ihrer wiederherstellbaren Komponenten an.
Abbildung 4 – Vorschaufenster
Schritt 7: Klicken Sie im Menü Datei auf Speichern, um die reparierte Datenbank zu speichern.
Abbildung 5 – Menü Datei
Schritt 8: Wählen Sie im Fenster Datenbank speichern das Dateiformat MySQL und klicken Sie auf Speichern.
Abbildung 6 – Fenster “Datenbank speichern
Schritt 9: Wenn die Meldung “Speichervorgang abgeschlossen” erscheint, klicken Sie auf OK.
Abbildung 7 – Meldungsfeld “Vollständig speichern
Die reparierte Datenbank wird an dem ausgewählten Ort gespeichert.
Ende Anmerkung
Wenn es um die Behebung von Datenbankbeschädigungen in MySQL-Servern geht, kann Ihnen die Ausführung der in diesem Beitrag beschriebenen Schritte zur Fehlerbehebung helfen, das Problem zu beheben.
Wenn Sie jedoch kein Experte im Umgang mit beschädigten Datenbanken sind oder eine große Datenbank haben (mit Gigabytes oder Terabytes an Daten), kann es sein, dass Sie die beschädigte Datenbank mit den Reparatur- und Wiederherstellungsoptionen nicht wiederherstellen können. Auch Wiederherstellungsoptionen wie innodb_force_recovery, die auf einen Wert von 4 oder mehr eingestellt sind, können zu Datenbeschädigungen führen.
Eine bessere Alternative ist die Verwendung einer speziell entwickelten MySQL-Reparatursoftware, mit der Sie eine beschädigte Datenbank einfach und im Originalformat reparieren können.
Was this article helpful?