3 messages in com.mysql.lists.mysql-deRe: Binary-Log Datei
FromSent OnAttachments
Stef...@evf.de13 Oct 2005 23:46 
Sebastian Mendel14 Oct 2005 00:26 
Rene Fertig15 Oct 2005 06:06 
Subject:Re: Binary-Log Datei
From:Rene Fertig (re@renux.de)
Date:10/15/2005 06:06:59 AM
List:com.mysql.lists.mysql-de

Am Freitag, 14. Oktober 2005 09:27 schrieb Sebastian Mendel:

Also ich hab hier auf meinem Server inzwischen 6Gb logdateien liegen. Hab da zwar inzwischen in der Anleitung gelesen das man das für Replikation und Wiederherstellung nach nem Crash braucht. Ich mach aber ne Tägliche Sicherung der gesamten DB und denk das ich das nicht brauch. Ne Replikation/Sicherung mach ich auch nur einmal täglich allerdings mit mysqlhotcopy. Wie kann ich denn diese Logs "bestätigen" in der Doku steht was von mysqladmin --flush-logs

Ich denk mir, weiß aber ned ob das richtig ist. Ich kann die logs flushen und anschließend mit nem rm löschen damit ich den platz wieder freibekomm oder ? Und das ganze kann ich imprinzip machen wenn die Datensicherung gelaufen ist.

also wenn überhaupt dann erst FLUSH, dann sichern, dann alte Logs löschen - weil sonst beginnt dein Log ja erst irgendwann _nach_ der letzten Sicherung ...

Ich habe mir ein Script gebaut, welches die einzelnen Datenbanken auf dem Server sichert, alte Logs und Backups entsorgt und vorher die DB flusht. Das Flushen und Löschen wird nur beim ersten Aufruf gemacht (Parameter first). Das Ganze wird durch cron gesteuert:

# Backup der Datenbanken 00 23 * * mon-fri root /usr/local/sbin/mysqlbackup dino first 05 23 * * mon-fri root /usr/local/sbin/mysqlbackup mysql 07 23 * * mon-fri root /usr/local/sbin/mysqlbackup Telefonliste 09 23 * * mon-fri root /usr/local/sbin/mysqlbackup flyspray ...

--- schnipp -8<-------------------------------------------------------

#!/bin/bash # Macht einen Dump der angegebenen Datenbank (gz-komprimiert). Als Dateiname # wird der Datenbankname und das akt. Datum verwendet. # wird als zweiter Parameter "first" angegeben, so wird vor dem eigentlichen # Backup ein refresh des Servers durchgeführt (Flush aller tables und logs) # Außerdem werden dann Backups gelöscht, die älter als 10 Tage sind. # # (c)2003-2005 Rene Fertig <re@renux.de>

# wo sollen das Backup hin? BACKUP_DIR=/var/tmp/backup

# Backup-User u. -Password BUSER=root BPW=geheim

# --- ENDE der Konfig --------------------------

# Funktion zum Löschen von Dateien im übergebenen Verzeichnis, die älter als # 10 Tage sind # args: $1 = Verzeichnis in dem gelöscht werden soll # $2 = Dateiendung, nach der gesucht werden soll (z.B. .tar.gz) del_old() { ODAYS=10 if [ $# -lt 2 ] then echo "Function del_old: Missing aruments!!" return 1 fi cd $1 || { echo "function del_old: can not change to $1"; return 1; } echo "Die folgenden Backups sind älter als $ODAYS Tage und wurden gelöscht:" find . -name "$2" -daystart -mtime +$ODAYS -print -exec rm {} \; echo

}

dname=`date +%Y%m%d`

if [ $# -lt 1 ] then echo "ERROR: arguments missing." echo "USAGE: $0 database [first]" exit 1 fi

if [ "$2" = "first" ] then /usr/bin/mysqladmin -u $BUSER -p$BPW refresh flush-logs del_old $BACKUP_DIR "*.gz" || STATUS=FAILURE del_old /var/lib/mysql "`hostname`-bin.[0-9][0-9][0-9]" || STATUS=FAILURE fi

/usr/bin/mysqldump --opt -u $BUSER -p$BPW $1 | gzip > $BACKUP_DIR/$1.$dname.gz

--- schnapp -8<-------------------------------------------------------

Ciao, René

----------------------------------------------------------------------