Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql backup und Optimierung
Hallo @all,
wie sehen eure Scripte aus mit denen ihr eure mysql-DBs zur Laufzeit sichert und optimiert? Die Datenbank kann hierzu NICHT gestoppt werden...
Ich möchte ein Script schreiben und hoffe auf kreativen Input eurerseits. Die mysql-Doku ist mir bekannt und wird gerade gelesen :)
mfg
cane
#!/bin/sh
DATE=`date -I`
TIME=`date | awk '{print $4}' | sed -e s/:/-/g`
MYSQLDUMP="/usr/local/bin/mysqldump"
BZIP2="/usr/bin/bzip2"
CHMOD="/bin/chmod"
NCFTPPUT="/usr/bin/ncftpput"
FTPCONF="/etc/ncftplogin.conf"
RFTPDIR="/mysql"
USER="xxx"
PASS="xxx"
DB="xxx"
BACKUPDIR="/dat1/backup/mysql/"
SUFFIX="sql.bz2"
### DO NOT EDIT BELOW ###
$MYSQLDUMP --user=$USER --password=$PASS --opt --databases $DB | $BZIP2 -c --best > $BACKUPDIR"$DATE"_"$TIME"_$DB.$SUFFIX
$CHMOD 700 $BACKUPDIR"$DATE"_"$TIME"_$DB.$SUFFIX
$NCFTPPUT -f $FTPCONF -V $RFTPDIR $BACKUPDIR"$DATE"_"$TIME"_$DB.$SUFFIX
Ganz simpel:
Dumpen - Komprimieren - lokal und auf Remote-FTP Server ablegen
PS: Eigentlich ein 3-Zeiler, aber da ich das Script für verschiedene DB's und auf verschieden Betriebsystemen verwende, hab ich lieber alles oben deklariert und kanns leicht anpassen.
Prima, das Anhängen eines Suffix der Datum und Zeit enthält ist schonmal nett beschrieben :)
mfg
cane
Hier ein sehr mächtiges Backupscript das unter GPL steht:
http://worldcommunity.com/opensource/utilities/mysql_backup.html
mfg
cane
www.borchi.de
01.01.05, 15:47
Ich habe $KULLs Script genomme. Es funktioniert super.
Ich würde aber gerne jede existierensw Datenbank in ein eigenes File sichern, nicht alle in eines.
Wie müsste ich das Script ändern?
Das Script sichert immer nur eine Datenbank.
Diese wird bei DB="xxx" eingetragen.
Ich kopiere mir das Script dann immer und passe nur den DB Parameter an.
Das Script wird dann entsprechend der zu sichernden DB benannt.
Für mehere Datenbanken auf einer Maschine ist das Script sicherlich ungeeignet. Da wäre dann eine Liste + for-Schleife angebracht.
Aber wie gesagt, ich nutze das immer nur für eine DB auf unterschiedlichen Systemen.
netzmeister
01.01.05, 21:42
Hallo,
die von mir verwendetete Datensicherungslösung bietet hierzu eine
eigene Erweiterung. Sehr nützlich und professionell.
Viele Grüße
Eicke
@netzmeister
Und wie sicherst du die Datenbanken?
netzmeister
01.01.05, 22:34
Hallo,
Einen Dump auf Platte als Datensicherung zu bezeichnen finde ich schon
ziemlich übertrieben. Das ist eher etwas für das Gewissen!
Ich habe das mit der echten Sicherung schon ein paar Mal beschrieben. Da ich von dem Unternehmen
nicht gesponsort werde, spare ich mir hier den Namen. Über die Suche im Forum
ist das bestimmt rauszufinden.
Alle professionellen Datensicherungslösungen bieten für verschiedenste
Datenbanken jeweils Clients an. Damit seid Ihr auf den sicheren Seite.
Die Sicherung erfolgt so direkt im laufenden Betrieb. Natürlich auf
externes Band bzw. Libary.
Da das alles sehr viel Geld kostet wäre es interessant zu wissen, wie wichtig
die daten denn wirklich sind?
Viele Grüße
Eicke
Hehe, eigentlich ging es doch nur um einen kreativen Anstoß für Cane's Script ;)
www.borchi.de
02.01.05, 12:26
Ich hab das Script mal ein wenig umgebaut. Eigentlich hab ich von diesem Shell Kram gar keine Ahnung, aber Google ist mein Freund :D
#!/bin/sh
DATE=`date -I`
TIME=`date | awk '{print $4}' | sed -e s/:/-/g`
MYSQLDUMP="/usr/bin/mysqldump"
BZIP2="/usr/bin/bzip2"
CHMOD="/bin/chmod"
USER="darthvader"
PASS="darksiderulez"
BACKUPDIR="/home/backups"
SUFFIX="sql.bz2"
echo
echo Backup vom "$DATE" um "$TIME"
mkdir $BACKUPDIR/backup_"$DATE"
mkdir $BACKUPDIR/backup_"$DATE"/sqldumps
echo Verzeichniss $BACKUPDIR/backup_"$DATE" wird erstellt...
echo
echo Verzeichniss $BACKUPDIR/backup_"$DATE"/sqldumps wird erstellt...
echo
echo gesichert werden:
echo
echo Paketliste
#
dpkg --get-selections "*" | $BZIP2 -c --best > $BACKUPDIR/backup_"$DATE"/paketliste_"$DATE"_"$TIME".txt.bz2
echo
echo MySql Datenbanken
#
$MYSQLDUMP --user=$USER --password=$PASS --opt --database mysql | $BZIP2 -c --best > $BACKUPDIR/backup_"$DATE"/sqldumps/mysql_"$
DATE"_"$TIME".sql.bz2
$MYSQLDUMP --user=$USER --password=$PASS --opt --database ps_stats | $BZIP2 -c --best > $BACKUPDIR/backup_"$DATE"/sqldumps/ps_st
ats_"$DATE"_"$TIME".sql.bz2
$MYSQLDUMP --user=$USER --password=$PASS --opt --database phpkit | $BZIP2 -c --best > $BACKUPDIR//backup_"$DATE"/sqldumps/phpkit
_"$DATE"_"$TIME".sql.bz2
echo
echo /scripte
#
tar zcf /tmp/scripte_"$DATE"_"$TIME".tgz /scripte && mv /tmp/scripte_* $BACKUPDIR/backup_"$DATE"
echo
echo /etc
#
#tar zcf /tmp/etc_"$DATE"_"$TIME".tgz /etc && mv /tmp/etc_* $BACKUPDIR/backup_"$DATE"
echo
echo /programme
#
#tar zcf /tmp/programme_"$DATE"_"$TIME".tgz /programme && mv /tmp/programme_* $BACKUPDIR/backup_"$DATE"
echo
echo /var/log
#
#tar zcf /tmp/var_log_"$DATE"_"$TIME".tgz /var/log && mv /tmp/var_log_* $BACKUPDIR/backup_"$DATE"
echo
echo /var/mail
#
#tar zcf /tmp/var_mail_"$DATE"_"$TIME".tgz /var/mail && mv /tmp/var_mail_* $BACKUPDIR/backup_"$DATE"
echo
echo /var/spool
#
#tar zcf /tmp/var_spool_"$DATE"_"$TIME".tgz /var/spool && mv /tmp/var_spool_* $BACKUPDIR/backup_"$DATE"
echo
echo /home/spitfire/Maildir
#
#tar zcf /tmp/maildir_spitfire_"$DATE"_"$TIME".tgz /home/spitfire/Maildir && mv /tmp/maildir_spitfire_* $BACKUPDIR/backup_"$DATE
"
echo
echo Folgende Dateien wurden nach $BACKUPDIR/backup_"$DATE" gesichert:
echo
dir -R -g $BACKUPDIR/backup_"$DATE"
Ich will jeden Freitag eine Sicherung machen und was jetzt noch fehlt ist eine Funktion, die alte Backups löscht, die älter als 1 Monat sind. Wie mache ich sowas? Die Sicherung erfolgt nur lokal und wird dann mit einigen anderen Sachen monatlich per rsync auf einen anderen Rechner übertragen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.