mysql: Reparieren und optimieren

Die Datenbank MySQL muss von Zeit zu Zeit gewartet werden. Korrupte Datenbanken oder fragmentierte Tabellen treten zwar selten auf, falls es jedoch zu solchen Problemen kommt, kann man sich mit Bordmitteln selbst helfen.

Kommt es zu einem unvorhergesehenen Server neustart, so hat MySQL anschließend mitunter Probleme alle Daten wiederzufinden. In diesem Fall spricht man von einer korrupten Datenbank.

Der andere Fall der weitaus häufiger auftreten wird ist die Fragmentierung. Mit der Zeit gerät die Ordnung in den Tabellen durcheinander. Es werden einzelne Teile gelöscht und neue Daten kommen hinzu. Das führt dazu, dass irgendwo in der Datendatei von MySQL eine Lücke entsteht.

Für gewöhnlich ist dies kein Problem, denn die gelöschten Zeilen protokolliert MySQL in einer Liste mit. Kommen wieder neue Daten zur Tabelle hinzu, dann werden die freien Positionen und die Datenlücke wieder gefüllt. Dies läuft solange gut, wenn nur mit festen Feldtypen gearbeitet wird. Kommen jedoch variable Felder wie etwa varchar, blob oder text ins Spiel funktioniert der Mechanismus nicht mehr und es bleiben viele kleine Lücken zurück, die Platz wegnehmen.

Mit dem Bordmitteln von Debian kann man sich in dieser Situation selbst helfen. Ohne das man lange Befehle oder das root-Passwort auswendig lernen muss, können in der Datei .bashrc zwei neue Befehle hinterlegt werden, die das Kennwort selber auslesen und mit der Reparatur und der Optimierung der Datenbank beginnen:

alias mysqlcheckrep=”mysqlcheck -u debian-sys-maint -cs –password=`grep -m 1 password  /etc/mysql/debian.cnf | awk ‘{print $3}’` –all-databases –auto-repair”
alias mysqlcheckopt=”mysqlcheck -u debian-sys-maint -os –password=`grep -m 1 password  /etc/mysql/debian.cnf | awk ‘{print $3}’` –all-databases”

Bitte beachten, dass der jeweilige Befehl von doppelten Anführungszeichen umschlossen ist, während das Passwort mit Hilfe von grep über sog. Backticks ausgelesen wird, während awk mit einfachen Anführungszeichen arbeitet.

Author: admirableadmin

Hello World! Ich bin Andreas Peichert und entwickle und programmiere Software seit 2000. Zurzeit arbeite ich als Senior Solution Architect.

One thought on “mysql: Reparieren und optimieren”

  1. This is a genuinely very good examine for me, Must confess that you might be 1 of the best bloggers I ever noticed.Thanks for posting this informative write-up.

Leave a Reply to Greg Osullivan Cancel reply

Your email address will not be published. Required fields are marked *