DB sichern via cron und Datum

Backup, Restore und Transfer von Daten
Post Reply
ragey
Posts: 14
Joined: 2006-02-10 21:47
 

DB sichern via cron und Datum

Post by ragey »

Hallo,
ich möchte gerne eine Tägliche DB Sicherung durchführen.
Dazu verwende ich folgende Zeile und lege einen Cronjob an:
Code:

Code: Select all

mysqldump -uNAME -pPASSWORT DB_NAME > /tmp/backup/db_backup.sql
Wird bei der Zeile die korrekte Struktur beibehalten?
Am nächsten Tag wird der Dump des Vortages überschrieben, oder?
Kann ich das irgendwie ändern, das die Dateinamen als Datum gesichert wird?
13082006.sql

Mfg Ragey
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: DB sichern via cron und Datum

Post by aubergine »

Code: Select all

DATUM=`date +%d-%m-%y`
mysqldump --databases DBNAME -uroot -pPW -C -x -F --opt > /root/$DATUM.sql
Am nächsten Tag wird der Dump des Vortages überschrieben, oder?
JA

Kann ich das irgendwie ändern, das die Dateinamen als Datum gesichert wird?

Wie oben geschrieben, packen wäre sicherlich noch sinnvoll
Last edited by aubergine on 2006-08-13 17:41, edited 1 time in total.
ragey
Posts: 14
Joined: 2006-02-10 21:47
 

Re: DB sichern via cron und Datum

Post by ragey »

Vielen Dank schonmal.

Das ganze packe ich am besten in eine Datei.
Wie steht es dann um die Struktur?

Wenn ich alle Datenbanken auf einmal sichern möchte muss ich doch
--all-databeses eingeben oder?

Welchen user muss ich dann verwenden? root?
Und elches Passwort? Vom root?
Weil die Datenbanken haben ja nicht immer die gleichen Passwörter.
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: DB sichern via cron und Datum

Post by aubergine »

ragey wrote: Das ganze packe ich am besten in eine Datei.
Wie steht es dann um die Struktur?
Wenn du --all-databases verwendest werden alle Datenbanken in eine .sql Datei geschrieben, von welcher aus du dann alle Datenbank mit der Struktur einspielen kannst.
ragey wrote: Wenn ich alle Datenbanken auf einmal sichern möchte muss ich doch
--all-databeses eingeben oder?
Ja oder mit --databases die einzelnen DB's anwählen.
ragey wrote: Welchen user muss ich dann verwenden? root?
Und elches Passwort? Vom root?
Weil die Datenbanken haben ja nicht immer die gleichen Passwörter.
Wenn du root verwendest wird das ohne Probleme funktionieren.
Mit anderen Usern kommt es auf die Rechtvergabe an
User avatar
daemotron
Administrator
Administrator
Posts: 2641
Joined: 2004-01-21 17:44
Contact:
 

Re: DB sichern via cron und Datum

Post by daemotron »

Ich würde für's Backup einen separaten User anlegen, der zwar alle Datenbanken lesen darf, aber keine Schreibrechte besitzt und erst recht keine GRANT-Berechtigung... Restore läuft dann natürlich nur über root, aber das muss man eh "manuell" machen. Ich hätte einfach Bauchschmerzen, das Passwort von root irgendwo im Klartext zu speichern...

Alternativ kannst Du auch ohne mysqldump arbeiten (und benötigst dafür auch keinen Datenbank-User), indem Du einmal täglich das data-Verzeichnis sicherst und dann je nach Transaktionsfrequenz (schreibend) Deiner Anwendungen das binlog in kürzeren Intervallen (siehe hierzu http://www.rootforum.org/forum/viewtopic.php?t=39481)
shapeshifta
Posts: 77
Joined: 2006-06-19 21:42
Location: Leipzig
Contact:
 

Re: DB sichern via cron und Datum

Post by shapeshifta »

mal ne doofe Frage: wie lege ich so einen neuen User an?
Vielleicht werd ich jetzt geflamed, aber mein Plesk will mich nicht lassen... :( Oder ich schau an der falschen Stelle...
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: DB sichern via cron und Datum

Post by flo »

Zur Not hilft das Handbuch

flo.
jensj
Posts: 6
Joined: 2004-03-24 09:34
 

Yet another mysql backup script

Post by jensj »

Ich stell einfach mal meins hier rein, es sichert jede Tabelle einzeln in einem tgz Archiv mit FTP Upload Möglichkeit:

Code: Select all

#!/bin/bash

#
# Allgemeines
#
FILENAME="mysqldump_all_$(date +%Y%m%d)_$(date +%H%M)_$HOSTNAME.tar.gz"
DIRNAME="mysqldump_all_$(date +%Y%m%d)"
BACKUP="/backup"
DATABASES="datenbankliste.txt"

#
# MySQL Setup
#
DBHOST="localhost"
DBUSER="***"
DBPASS="***"

#
# FTP Setup
#
USEFTP=1
FTPHOST="backup.serverkompetenz.de"
FTPUSER="***"
FTPPASS="***"
FTPBACKUPDIR="mysql"
#
###################################################################################################

echo "MySQL-Datenbanken werden gesichert:"

#
# Temporäres Verzeichnis erstellen
#
mkdir -p $BACKUP/$DIRNAME
cd $BACKUP

#
# Bereinigte Liste der Datenbanken erzeugen
#
mysqlshow -h$DBHOST -u$DBUSER -p$DBPASS | awk '{print $2}' | grep -v Databases | sort > $BACKUP/$DIRNAME/$DATABASES

#
# Wohin sollen die ganzen Backups geschrieben werden?
#
for x in `cat $BACKUP/$DIRNAME/$DATABASES`; do 
	echo -n "Datenbank $x wird gesichert... "; 
	mysqldump --opt --add-drop-database -h$DBHOST -u$DBUSER -p$DBPASS --databases $x | gzip -q -f -5 > $BACKUP/$DIRNAME/$x.sql.gz ;
	echo "done.";
done;

#
# Gesamtarchiv erzeugen (Dateien werden nach Archivierung gelöscht)
#
tar -c -z --directory=$BACKUP --remove-files -f $FILENAME $DIRNAME/*.gz $DIRNAME/$DATABASES 

#
# Temporäres Verzeichnis löschen
#
rmdir $BACKUP/$DIRNAME

echo "$FILENAME wurde erstellt."

#
# FTP Transaktion
#
if test $USEFTP -eq 1; then
echo ""
echo "$FILENAME wird auf den Backup FTP Server hochgeladen... "
ftp -in <<EOF
open $FTPHOST
user $FTPUSER $FTPPASS
bin
cd $FTPBACKUPDIR
put $FILENAME
exit
EOF
fi

cd -
Grüsse
jens
tha_specializt
Posts: 8
Joined: 2006-08-15 21:13
 

Re: DB sichern via cron und Datum

Post by tha_specializt »

shapeshifta wrote:mal ne doofe Frage: wie lege ich so einen neuen User an?
phpMyadmin ist jedermanns Freund.. man muss nicht unbedingt MySQL-Syntax lernen solange man keine komplexen Aufgaben damit zu erledigen hat, MySQL is eher ein Mittel zum Zweck...
debianfan
Posts: 165
Joined: 2002-08-17 18:40
 

Re: DB sichern via cron und Datum

Post by debianfan »

Code: Select all

#!/bin/sh
datum=`date +%Y%m%d` 
mkdir /backup
cd /backup
mkdir /backup/${datum} 
cd /backup/${datum} 
/opt/lampp/bin/mysqldump --opt --all-databases > ${datum}_komplett_server_datenbanken.sql
zip -P "PASSWORTZURVERSCHLÜSSELUNGDERGEDUMPTENDATENBANK" /backup/${datum}/${datum}_komplett_server_datenbanken   /backup/${datum}/${datum}_komplett_server_datenbanken.sql
maildatum=`date +%d%m%Y` 
echo "${maildatum} Sicherung MySql Server " | mutt -s "Database Backup ${datum}" -a ${datum}_komplett_server_datenbanken.zip "meinemailadresse@irgendwas.de
shapeshifta
Posts: 77
Joined: 2006-06-19 21:42
Location: Leipzig
Contact:
 

Re: DB sichern via cron und Datum

Post by shapeshifta »

Manchmal ist nicht die eigene Dummheit schuld:
Wer sich wundert, dass phpmyadmin im Plesk backend nicht läuft und einen popupblocker wie zb beim Firefox benutzt: einfach ausschalten bzw erlauben und dann geht es.
8)
Post Reply