MySQL Datenbanken optimieren und Backup erzeugen

fehlt wasgeht sogutsehr guthat geholfen (1 votes, average: 4,00 out of 5)
Loading ... Loading ...
Werbung




Das wichtigste an Bewegungsdaten sind wohl die Datenbanken, in denen die Daten gespeichert werden. Aber je grösser die Datenbestände werden, desto langsamer werden wohl auch die Zugriffe auf die Datenbank. Gerade mySQL bietet da die Funktion, die Tabellen zu optimieren. Wenn schon optimiert wird, sollte im gleichen Zuge von den Datenbanken auch gleich ein Backup gemacht werden.

Folgender Befehl optimiert die Datenbanken:

mysqlcheck --all-databases --auto-repair --extended --optimize -uroot -ppasswort

root muss durch einen SQL-User ersetzt werden, der das Recht zur Optimierung hat passwort ist das zu dem User gehörende Passwort

Folgender Befehl erzeugt ein Backup der Datenbank:

mysqldump --all-databases -uroot -ppasswort --opt | bzip2 -c > /srv/archiv/sql/sqlbackup.sql.bz2

Hierbei wird in das Verzeichnis /srv/archiv die Backupdatei sqlbackup.sql.bz2 mit einem vollständigen SQL-Dump erzeugt.

Tägliche automatische Sicherung

Diese Funktionen lassen sich auch zu einer täglichen Automatisierung per cron ausführen. Dazu erzeugt man eine Datei, z.b. /usr/local/bin/mysqlbackup, mit den beiden oben genannten Befehlen:

#!/bin/sh
datum = date -I
mysqlcheck --all-databases --auto-repair --extended --optimize -uroot -ppasswort
>/srv/archiv/sqlcheck-$datum.log
mysqldump --all-databases -uroot -ppasswort --opt |
bzip2 -c > /srv/archiv/sql/backup-$datum.sql.bz2

nun muss nur noch der cron-Eintrag gemacht werden:

0 3 * * * /usr/local/bin/mysqlbackup

Man sollte beachten, dass alte Backupdateien nicht gelöscht werden. Dies sollte man von Zeit zu Zeit manuell machen.

Sollte es sich bei dem Server, auf dem die Datenbanken laufen, um einen Root-Server handeln, so könnte man das Verzeichnis mit den Backups per ftp oder http freigeben (aber bitte nur mit Passwort) und so von Zeit zu Zeit die Backupdatei auf den einen Server zu Hause laden. Zurückspielen des Backups

Folgender Befehl liesst die backupdatei zurück:

bzcat backup.sql.bz2 | mysql -uroot -ppasswort


Werbung


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>