werkzeuge:mariadb:recovery-innodb
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| werkzeuge:mariadb:recovery-innodb [18.08.2026 06:55] – admin | werkzeuge:mariadb:recovery-innodb [29.09.2026 05:55] (aktuell) – admin | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | <WRAP rww-topic-header> | + | <WRAP rww-page-header> |
| - | + | <WRAP rww-page-header-main> | |
| - | <WRAP rww-topic-heading> | + | <WRAP rww-page-title> |
| ====== MariaDB-Recovery nach InnoDB-Absturz ====== | ====== MariaDB-Recovery nach InnoDB-Absturz ====== | ||
| </ | </ | ||
| - | <WRAP rww-topic-symbol> | + | <WRAP rww-page-icon> |
| <iconify mdi: | <iconify mdi: | ||
| + | </ | ||
| </ | </ | ||
| + | <WRAP rww-page-back> | ||
| + | [[werkzeuge: | ||
| + | </ | ||
| </ | </ | ||
| + | |||
| + | ---- | ||
| Diese Anleitung dokumentiert die erfolgreiche Wiederherstellung einer beschädigten lokalen MariaDB-Installation. | Diese Anleitung dokumentiert die erfolgreiche Wiederherstellung einer beschädigten lokalen MariaDB-Installation. | ||
| Sie basiert auf einem konkreten Recovery-Fall vom **17.08.2026** unter Windows mit XAMPP und MariaDB 10.4.32. | Sie basiert auf einem konkreten Recovery-Fall vom **17.08.2026** unter Windows mit XAMPP und MariaDB 10.4.32. | ||
| - | |||
| - | <WRAP rww-back> | ||
| - | [[werkzeuge: | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| ===== Ausgangslage ===== | ===== Ausgangslage ===== | ||
| Zeile 476: | Zeile 476: | ||
| </ | </ | ||
| + | ===== 7. MariaDB sauber neu initialisieren ===== | ||
| + | Nachdem SQL-Dump und Rohsicherung vorhanden waren und der Recovery-Modus deaktiviert war, konnte MariaDB neu aufgebaut werden. | ||
| + | |||
| + | MariaDB musste dabei weiterhin vollständig gestoppt sein. | ||
| + | |||
| + | ==== Beschädigten Datenordner erhalten ==== | ||
| + | |||
| + | Der bisherige Datenordner: | ||
| + | |||
| + | < | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | wurde **nicht gelöscht**, | ||
| + | |||
| + | < | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | Damit waren nun zwei Kopien des ursprünglichen Datenbestands vorhanden: | ||
| + | |||
| + | < | ||
| + | E: | ||
| + | ├── data_backup_20260817 | ||
| + | ├── data_defekt_20260817 | ||
| + | └── ... | ||
| + | </ | ||
| + | |||
| + | <WRAP important> | ||
| + | Den beschädigten Datenbestand nicht löschen. | ||
| + | |||
| + | Er bleibt als zusätzliche Rückfallebene erhalten, bis die Wiederherstellung vollständig abgeschlossen und geprüft wurde. | ||
| + | </ | ||
| + | |||
| + | ==== Neuen MariaDB-Datenbestand erzeugen ==== | ||
| + | |||
| + | Anschließend wurde eine neue, leere MariaDB-Datenstruktur erzeugt. | ||
| + | |||
| + | Dazu wurde zunächst in das MariaDB-Programmverzeichnis gewechselt: | ||
| + | |||
| + | <code cmd> | ||
| + | cd /d E: | ||
| + | </ | ||
| + | |||
| + | Danach wurde die Initialisierung gestartet: | ||
| + | |||
| + | <code cmd> | ||
| + | mysql_install_db.exe --datadir=" | ||
| + | </ | ||
| + | |||
| + | Die erfolgreiche Initialisierung wurde mit folgender Ausgabe bestätigt: | ||
| + | |||
| + | < | ||
| + | Running bootstrap | ||
| + | Removing default user | ||
| + | Creating my.ini file | ||
| + | Creation of the database was successful | ||
| + | </ | ||
| + | |||
| + | Damit existierte wieder ein neuer: | ||
| + | |||
| + | < | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | mit frisch angelegten MariaDB-Systemtabellen. | ||
| + | |||
| + | ==== MariaDB ohne Recovery-Modus testen ==== | ||
| + | |||
| + | Nun wurde MariaDB über das XAMPP Control Panel gestartet. | ||
| + | |||
| + | Der entscheidende Test: | ||
| + | |||
| + | < | ||
| + | MySQL → Start | ||
| + | </ | ||
| + | |||
| + | MariaDB blieb **grün und lief stabil**. | ||
| + | |||
| + | Damit war bestätigt, dass die frisch initialisierte MariaDB-Installation wieder ohne: | ||
| + | |||
| + | <code ini> | ||
| + | innodb_force_recovery | ||
| + | </ | ||
| + | |||
| + | starten konnte. | ||
| + | |||
| + | <WRAP tip> | ||
| + | Zu diesem Zeitpunkt noch keine alten MariaDB-Systemdateien aus dem beschädigten '' | ||
| + | |||
| + | Die benötigten eigenen Datenbanken werden anschließend ausschließlich aus den zuvor erstellten SQL-Dumps wiederhergestellt. | ||
| + | </ | ||
| + | |||
| + | ===== 8. TCB-Datenbank wiederherstellen ===== | ||
| + | |||
| + | Nachdem MariaDB mit einem frisch initialisierten Datenbestand wieder stabil lief, konnte die zuvor gesicherte WordPress-Datenbank wiederhergestellt werden. | ||
| + | |||
| + | Die benötigte Datenbank war: | ||
| + | |||
| + | < | ||
| + | thecruiserblog_local | ||
| + | </ | ||
| + | |||
| + | Der zuvor erstellte SQL-Dump: | ||
| + | |||
| + | < | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | ==== Leere Datenbank neu anlegen ==== | ||
| + | |||
| + | Zunächst wurde die Datenbank neu erstellt: | ||
| + | |||
| + | <code cmd> | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | Damit stand eine neue und leere Datenbank für den Import zur Verfügung. | ||
| + | |||
| + | ==== SQL-Dump importieren ==== | ||
| + | |||
| + | Anschließend wurde der zuvor gerettete SQL-Dump importiert: | ||
| + | |||
| + | <code cmd> | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | Der Import lief ohne Fehlermeldung durch. | ||
| + | |||
| + | <WRAP important> | ||
| + | WordPress wurde zu diesem Zeitpunkt noch nicht geöffnet. | ||
| + | |||
| + | Zuerst wurde geprüft, ob die Datenbank tatsächlich korrekt wiederhergestellt worden war. | ||
| + | </ | ||
| + | |||
| + | ==== Tabellen kontrollieren ==== | ||
| + | |||
| + | Die vorhandenen Tabellen wurden mit folgendem Befehl angezeigt: | ||
| + | |||
| + | <code cmd> | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | Unter anderem waren die zentralen WordPress-Tabellen wieder vorhanden: | ||
| + | |||
| + | < | ||
| + | wp_commentmeta | ||
| + | wp_comments | ||
| + | wp_links | ||
| + | wp_options | ||
| + | wp_postmeta | ||
| + | wp_posts | ||
| + | wp_term_relationships | ||
| + | wp_term_taxonomy | ||
| + | wp_termmeta | ||
| + | wp_terms | ||
| + | wp_usermeta | ||
| + | wp_users | ||
| + | </ | ||
| + | |||
| + | Zusätzlich waren auch die Tabellen der verwendeten Plugins wieder vorhanden. | ||
| + | |||
| + | Damit war bestätigt, dass der SQL-Dump erfolgreich importiert worden war. | ||
| + | |||
| + | ==== WordPress-Adressen kontrollieren ==== | ||
| + | |||
| + | Vor dem ersten Aufruf von WordPress wurden zusätzlich die beiden zentralen Einstellungen '' | ||
| + | |||
| + | <code cmd> | ||
| + | E: | ||
| + | </ | ||
| + | |||
| + | Die Ausgabe lautete: | ||
| + | |||
| + | < | ||
| + | home http:// | ||
| + | siteurl | ||
| + | </ | ||
| + | |||
| + | Damit zeigte die wiederhergestellte Datenbank weiterhin auf die korrekte lokale WordPress-Installation. | ||
| + | |||
| + | ==== WordPress testen ==== | ||
| + | |||
| + | Erst nach diesen Prüfungen wurde TheCruiserBlog wieder im Browser geöffnet. | ||
| + | |||
| + | Geprüft wurden: | ||
| + | |||
| + | * Frontend | ||
| + | * WordPress-Dashboard | ||
| + | |||
| + | Beide Bereiche luden wieder normal. | ||
| + | |||
| + | <WRAP tip> | ||
| + | Nach einer Wiederherstellung nicht sofort davon ausgehen, dass ein erfolgreicher SQL-Import automatisch eine funktionierende WordPress-Installation bedeutet. | ||
| + | |||
| + | Vor dem ersten Aufruf mindestens die vorhandenen Tabellen sowie '' | ||
| + | </ | ||
| + | |||
| + | ==== Ergebnis ==== | ||
| + | |||
| + | Die Datenbank: | ||
| + | |||
| + | < | ||
| + | thecruiserblog_local | ||
| + | </ | ||
| + | |||
| + | war damit erfolgreich aus dem Recovery-Dump wiederhergestellt. | ||
| + | |||
| + | TheCruiserBlog konnte anschließend wieder normal verwendet werden. | ||
| + | |||
| + | ===== 9. Zusammenfassung und Merksätze ===== | ||
| + | |||
| + | Das Recovery konnte erfolgreich abgeschlossen werden. | ||
| + | |||
| + | Der entscheidende Ablauf war: | ||
| + | |||
| + | < | ||
| + | Fehler diagnostizieren | ||
| + | ↓ | ||
| + | Aria-Systemtabelle prüfen und reparieren | ||
| + | ↓ | ||
| + | InnoDB-Schaden erkennen | ||
| + | ↓ | ||
| + | innodb_force_recovery schrittweise erhöhen | ||
| + | ↓ | ||
| + | MariaDB startet im Recovery-Modus | ||
| + | ↓ | ||
| + | SQL-Dumps erstellen | ||
| + | ↓ | ||
| + | SQL-Dumps zusätzlich sichern | ||
| + | ↓ | ||
| + | kompletten data-Ordner sichern | ||
| + | ↓ | ||
| + | Recovery-Modus deaktivieren | ||
| + | ↓ | ||
| + | beschädigten data-Ordner erhalten | ||
| + | ↓ | ||
| + | MariaDB neu initialisieren | ||
| + | ↓ | ||
| + | Datenbank neu anlegen | ||
| + | ↓ | ||
| + | SQL-Dump importieren | ||
| + | ↓ | ||
| + | Tabellen und WordPress-URLs prüfen | ||
| + | ↓ | ||
| + | Frontend und Dashboard testen | ||
| + | </ | ||
| + | |||
| + | ==== Die wichtigsten Regeln ==== | ||
| + | |||
| + | * Nicht sofort Dateien aus '' | ||
| + | * Zuerst das MariaDB-Error-Log prüfen. | ||
| + | * MariaDB bei Bedarf direkt mit '' | ||
| + | * Einen möglichen Portkonflikt auf Port '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Den Recovery-Level nur erhöhen, wenn MariaDB mit dem niedrigeren Level nicht startet. | ||
| + | * Immer den niedrigsten funktionierenden Recovery-Level verwenden. | ||
| + | * Recovery-Modus ausschließlich zur Datenrettung verwenden. | ||
| + | * Sobald MariaDB im Recovery-Modus läuft, zuerst die benötigten Datenbanken exportieren. | ||
| + | * SQL-Dumps nach dem Export auf Existenz und plausible Dateigröße prüfen. | ||
| + | * Wichtige Dumps zusätzlich außerhalb des XAMPP-Bereichs sichern. | ||
| + | * Vor dem Neuaufbau zusätzlich den kompletten '' | ||
| + | * Den beschädigten Datenbestand nicht vorschnell löschen. | ||
| + | * Alte MariaDB-Systemdateien nicht ungeprüft in eine frisch initialisierte Installation zurückkopieren. | ||
| + | * Eigene Datenbanken bevorzugt aus SQL-Dumps wiederherstellen. | ||
| + | * Nach dem Import die vorhandenen Tabellen kontrollieren. | ||
| + | * Bei WordPress zusätzlich '' | ||
| + | * Erst danach WordPress wieder normal verwenden. | ||
| + | |||
| + | ==== Was ausdrücklich nicht gemacht wurde ==== | ||
| + | |||
| + | Während des Recovery-Verfahrens wurden insbesondere folgende Maßnahmen vermieden: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * beschädigte Systemtabellen ungeprüft zurückkopieren | ||
| + | * WordPress während des Recovery-Modus normal weiterverwenden | ||
| + | * den beschädigten '' | ||
| + | |||
| + | <WRAP important> | ||
| + | Bei einem Datenbank-Recovery steht zunächst die **Rettung der Daten** im Vordergrund. | ||
| + | |||
| + | Erst wenn SQL-Dumps und zusätzliche Sicherungen vorhanden sind, sollte mit dem Neuaufbau der beschädigten MariaDB-Installation begonnen werden. | ||
| + | </ | ||
| + | |||
| + | ===== Konkreter Recovery-Fall ===== | ||
| + | |||
| + | ^ Punkt ^ Wert ^ | ||
| + | | Datum | 17.08.2026 | | ||
| + | | Umgebung | Windows / XAMPP | | ||
| + | | MariaDB | 10.4.32 | | ||
| + | | betroffene Hauptdatenbank | '' | ||
| + | | erster Schaden | Aria-Systemtabelle '' | ||
| + | | weiterer Schaden | InnoDB-System-Tablespace | | ||
| + | | funktionierender Recovery-Level | '' | ||
| + | | TCB-Dump | '' | ||
| + | | Dump-Größe | 8.859.273 Bytes | | ||
| + | | Ergebnis | **Recovery erfolgreich** | | ||
| + | |||
| + | TheCruiserBlog konnte nach der Neuinitialisierung von MariaDB und dem Import des SQL-Dumps wieder normal über Frontend und WordPress-Dashboard verwendet werden. | ||
| + | |||
| + | <WRAP rww-to-top> | ||
| + | [[# | ||
| + | </ | ||
werkzeuge/mariadb/recovery-innodb.1787028951.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
