mysqlcheck/mariadbcheck: Konsistenzprüfung vor mysqldump

fnatter

Benutzer
Beiträge
6
hallo mariadb/mysql-Experten,

ich möchte gerne vor dem tägl. Exportieren (mysqldump) von zwei
kritischen mariadb-Datenbanken (für redmine und mediawiki)
einen Konsistenzcheck einbauen (damit ich im Fall der Fälle
zeitnah ein Backup wiederherstellen kann). Fragen dazu:

- ist mysqlcheck(mariadbcheck) geeignet oder gibt es
etwas besseres? (Ich möchte den Dienst dafür lieber nicht
herunterfahren)

- ist:
mysqlcheck -u root -pX --check --all-databases --extended
definitiv readonly unter Ubuntu 20.04 / Ubuntu 22.04?

- kann man sich auf den returncode (0=Erfolg) verlassen?

Leider sind diese Fragen AFAICT in der man-page nicht
beantwortet.

Vielen Dank und viele Grüße,
Felix
 
Werbung:
ich möchte gerne vor dem tägl. Exportieren (mysqldump) von zwei
kritischen mariadb-Datenbanken (für redmine und mediawiki)
einen Konsistenzcheck einbauen (damit ich im Fall der Fälle
zeitnah ein Backup wiederherstellen kann). Fragen dazu:
Vielleicht ist die Frage falsch gestellt? Mir stellt sich die Frage, warum eine DB verwenden, die solche Reparaturtools nötig hat?
Meines Wissens nach würden beide Anwendungen auch mit PostgreSQL laufen.
 
Vielleicht ist die Frage falsch gestellt? Mir stellt sich die Frage, warum eine DB verwenden, die solche Reparaturtools nötig hat?
Meines Wissens nach würden beide Anwendungen auch mit PostgreSQL laufen.
Danke für die Antwort. Ja, das wäre wahrscheinlich eine bessere Lösung gewesen.
Nun möchte ich das aber aktuell nicht ändern, daher suche ich nach einer verbesserten Datensicherheit
mit mariadb/mysql (und bevor die Frage kommt, ich möchte keine Replikation der DB auf einen anderen Host).
Viele Grüße,
Felix
 
(und bevor die Frage kommt, ich möchte keine Replikation der DB auf einen anderen Host)
Musste ja auch nicht, aber wenn du BINLOGs erzeugst kannst du an
jede beliebige Position (Transaktion / Zeitstempel) deine DB neu aufbauen.

Was meinst du mit "Konsistenzcheck" ? Willst du die Tabellen
prüfen oder prüfen ob der Inhalt valide ist?
Welche Engine setzt du ein ?

Und womit machst du die Datensicherung ?

Gruß Bernd
 
hallo Bernd,
danke für Deine schnelle Antwort.
Musste ja auch nicht, aber wenn du BINLOGs erzeugst kannst du an
jede beliebige Position (Transaktion / Zeitstempel) deine DB neu aufbauen.
danke für den Vorschlag. Das geht mir ehrlich gesagt zu weit, ich bin nur ein Entwickler,
der (bei einer kleinen Firma) auch Teilzeit-Admin ist.
Was meinst du mit "Konsistenzcheck" ? Willst du die Tabellen
prüfen oder prüfen ob der Inhalt valide ist?
Ich habe einen (ProxMox-)Virtualisierungsserver mit drei VMs, von denen eine
mehrfach crashes hatte (evtl. wegen HDD, memory, ...). Diese VM habe ich auf einen anderen
Server verschoben (was das Problem behoben hat). Ich hatte viele (Subversion)checks
eingebaut (u.a. Mail bei jedem Fehler, svnadmin verify), um Fehler früh zu erkennen.
Nun möchte ich auch für die anderen VMs (redmine, mediawiki) mehr checks einbauen,
um Probleme früh zu erkennen.
Welche Engine setzt du ein ?
Der Standard, müsste INNODB sein.
Und womit machst du die Datensicherung ?
Bisher nur mysqldump.
Vielen Dank und mit freundlichen Grüßen,
Felix
 
Das geht mir ehrlich gesagt zu weit, ich bin nur ein Entwickler,
der (bei einer kleinen Firma) auch Teilzeit-Admin ist.

In einem Entwickler System müsste man mit regelmäßigen Exporten von Datenmodell und (Entwickler- / Beispiel-) Daten ganz gut klar kommen.
Datenmodelle und Testdaten hätte man sowieso irgendwo gescriptet in git oder sowas. Alles einfach wieder herzustellen in der benötigten Version.
Daten kann man vermutlich auch in mysql als SQL Dump exportieren.
Also vielleicht machst Du Dir da zu viel Sorgen oder bräuchtest eine andere Herangehensweise?

Wenn Dir eine VM wegen Hardwarefehlern um die Ohren fliegt, ist jede DB(und andere Software) aufgeschmissen. Dann hilft nur Neuinstallation und einspielen von "Backups". In Anführungszeichen, weil es zumindest in meiner Welt für Entwickler immer Verfahren gäbe, einen definierten Inhalt in der DB herzustellen, auch ohne Backup, durch Persistenzsysteme und Datenscripte im aller einfachsten Fall.
 
In einem Entwickler System müsste man mit regelmäßigen Exporten von Datenmodell und (Entwickler- / Beispiel-) Daten ganz gut klar kommen.
Datenmodelle und Testdaten hätte man sowieso irgendwo gescriptet in git oder sowas. Alles einfach wieder herzustellen in der benötigten Version.
Daten kann man vermutlich auch in mysql als SQL Dump exportieren.
Also vielleicht machst Du Dir da zu viel Sorgen oder bräuchtest eine andere Herangehensweise?

Es ist nicht nur ein Entwickler-System: Es handelt sich um Produktivsysteme (Ticketsystem, Knowledgebase-Mediawiki).
Ich meinte nur, dass ich kein DB-Admin im strengen Sinn bin.

Wenn Dir eine VM wegen Hardwarefehlern um die Ohren fliegt, ist jede DB(und andere Software) aufgeschmissen. Dann hilft nur Neuinstallation und einspielen von "Backups". In Anführungszeichen, weil es zumindest in meiner Welt für Entwickler immer Verfahren gäbe, einen definierten Inhalt in der DB herzustellen, auch ohne Backup, durch Persistenzsysteme und Datenscripte im aller einfachsten Fall.
Genau, ich möchte eben sehr früh eine Korruption der Daten (z.B. durch Hardwarefehler) erkennen,
damit ich *zeitnah* ein daily SQL Backup zurückspielen kann. Daher hatte ich nach mysqlcheck/mariadbcheck
(bzw. ob mysqldump reicht) gefragt :)

Vielen Dank und viele Grüße,
Felix
 
Gibt es für PostgreSQL seit etlichen Jahren. Bei jedem Zugriff wird dann diese Prüfsumme geprüft. Performance-Impakt faktisch NULL, aber Bitfehler durch kapotte Platten werden so sehr schnell erkannt. Per default zwar aus (bis Version 13, ab 14 default an), aber ich empfehler IMMER, dies einzuschalten.

 
Gibt es für PostgreSQL seit etlichen Jahren. Bei jedem Zugriff wird dann diese Prüfsumme geprüft. Performance-Impakt faktisch NULL, aber Bitfehler durch kapotte Platten werden so sehr schnell erkannt. Per default zwar aus (bis Version 13, ab 14 default an), aber ich empfehler IMMER, dies einzuschalten.


Gruß am Münchhausen,

Das gleiche passiert by MySql auch, jedoch nicht (genau wie bei PG) werden geschrieben und verifizierte Daten nicht erneut geprüft ohne das die neu genutzt werden sollen.

Aber gegen defekte Hardware machste nix.
Selbst Testprogramme können dann falsche Werte wegschieben oder die Daten werden erst durch das reparieren zerstört.

Das einzige was hilft. Fehler suchen und beheben.
 
Werbung:
hallo nochmal Datenbank-Experten,

kann jemand vielleicht noch meine ursprüngliche Frage beantworten:
Ist
mysqlcheck -u root -pX --check --all-databases --extended
readonly?

Vielen Dank und viele Grüße,
Felix
 
Zurück
Oben