Zusammenfassung
Das Universitätsrechenzentrum bietet Ihnen die Möglichkeit, die Server Ihrer Einrichtung in das zentrale Backup-System des Universitätsrechenzentrum einzubinden. Dadurch werden die Daten Ihres Servers in regelmäßigen Abständen gesichert und können bei Verlust wieder eingespielt werden.
Diese Anleitung richtet sich besonders an folgende Zielgruppen:
- Mitarbeitende
Am URZ wird aktuell das Backupsystem Bareos (Backup Archiving REcovery Open Sourced) verwendet.
Altsysteme, die bereits durch Bareos abgelöst wurden
- Symantec Netbackup (seit 2018)
- Atempo Time Navigator (seit 2016)
Installation Bareos-Client
Für das Backup muss der Bareos-Client installiert werden. Eine Anleitung dafür ist hier zu finden.
Antrag Backup
Das Backup kann nach der Installation des Clients über dieses Formular beantragt werden.
Dort werden alle notwendigen Daten abgefragt, damit das Backup eingerichtet werden kann.
Feld | Anmerkung |
---|---|
Hostname | Es muss ein gültiger DNS-Name für den Client existieren, da ansonsten dieser vom Backupserver nicht erreicht werden kann. Daher ist dies auch ein Pflichtfeld. |
Host Typ | Siehe unten 'Arten Backup' |
... | ... |
Fragen zum Backup-Antrag können Sie im URZ-Service Desk stellen.
Festlegungen
- Für jeden Backupclient muss es mindestens einen Ansprechpartner geben, der dann auch die Status-E-Mails erhält.
- Die Benachrichtigung (Status-E-Mail) kann nur an Uni-Jena Adressen (*@*uni-jena.de) versendet werden (auch mehrere möglich).
- Für einen eigenständigen Restore muss ein URZ-Account existieren und muss bei uns eingetragen werden (siehe Anleitung Restore mit Bareos)
Dauer der Aufbewahrung des Backups
- Die Backupdaten werden nach Ablauf der Retention (3 Wochen oder 3 Monate) automatisch gelöscht!
Sobald eine der folgenden Bedingungen erfüllt ist, wird davon ausgegangen, dass das Backup nicht mehr benötigt wird. Falls es dann keine andere Information gibt, wird das Backup dann komplett gelöscht.
- Der Ansprechpartner ist nicht mehr vorhanden (Nutzer bzw. E-Mail-Adresse existiert nicht mehr.)
- Der DNS-Name des Clients existiert nicht mehr.
- Es gab seit 6 Monaten kein erfolgreiches Backup mehr. Solange es keine automatische Benachrichtigung bzw. Warnung darüber gibt, wird zuerst nachgefragt.
Backup-Arten
Wir unterscheiden 2 Typen von Backup, die bestimmte Eigenschaften besitzen.
Desktop PC | Server | |
---|---|---|
online | Rechner ist unregelmäßig am Netzwerk. | Rechner ist immer an und erreichbar. |
Datenmenge | einige GB | GB bis TB |
Backupdauer | max. 2h | max. 5d |
Server werden klassisch nach festen Zeitplan gesichert:
- wöchentlich voll (am Wochenende)
- täglich inkrementell (nachts)
oder
- monatlich voll (am Wochenende)
- wöchentlich inkrementell (am Wochenende)
(In einigen Fällen sind auch andere Zeitpläne möglich und sinnvoll.).
Bei Desktop PCs wird mehrmals täglich versucht, den Client zu erreichen und nur wenn dieser erreichbar ist, wird ein Backup gestartet. Dadurch ist die Wahrscheinlichkeit größer dauerhaft ein funktionierendes Backup zu haben.
Excludes
Es werden automatisch alle Verzeichnisse vom Backup ausgeschlossen, die eine Datei '.nobackup' beinhalten.
Für Windows gilt zusätzlich der Dateiname '.nobackup.txt' und der Inhalt des Registrykeys FilesNotToBackup.
Diese Verzeichnisse werden standardmässig ebenso nicht gesichert bzw. nur auf expliziten Wunsch!
Linux:
*/.cache */.gvfs */lost+found /var/tmp /var/cache /var/lock /var/run /var/log /var/lib/mysql # use dumps !! /var/lib/postgresql # use dumps !! /var/lib/pqsql # use dumps !!
Windows:
[A-Z]:/Users/*/AppData [A-Z]:/ProgramData/Microsoft/Network/Downloader/qmgr[01].dat [A-Z]:/WINDOWS/msdownld.tmp [A-Z]:/WINDOWS/$Nt*Uninstall* [A-Z]:/WINDOWS/SoftwareDistribution [A-Z]:/WINDOWS/WinSxS [A-Z]:/WINDOWS/Temp [A-Z]:/RECYCLER [A-Z]:/$Recycle.Bin [A-Z]:/pagefile.sys [A-Z]:/hiberfil.sys [A-Z]:/bareos-restore
Datenbanksicherungen
Datenbanken können nicht konsistent durch die Sicherung der Datenbankdateien gesichert werden! Die sicherste Methode dafür ist die Sicherung der Datenbank mit den jeweiligen Datenbankmitteln als Dump und dann Sicherung dieses Dumps mit Bareos.
Es ist möglich und am sinnvollsten diesen Dump direkt von Bareos vor der eigentlichen Sicherung starten zu lassen, was verschiedene Vorteile hat:
- Der Dump ist aktuell (direkt vor der Sicherung erzeugt).
- Es muss keine Zeitliche Abhänigkeit beachtet werden. Ansonsten kann es sein, dass der Dump während der Sicherung gerade (über)schrieben wird und somit kaputt ist.
- Bareos merkt Fehler anhand wie das Skript beendet wurde und startet dann das Backup nicht bei fehlerhafter Dumperzeugung. Somit wären auch nur konsistente Sicherungen in Bareos.
Beispielskript für MySQL Sicherung
Hier werden alle Datenbanken nach /var/backups/mysql gesichert und nach 10 Tagen gelöscht.
Dump Verzeichnis erzeugen:
mkdir /var/backups/mysql
Skript /usr/local/sbin/dump_mysql_dbs.sh :
#!/bin/bash mysqlopts="--defaults-file=/etc/mysql/debian.cnf" dumpprefix="mysqldump-" dumpopts="--complete-insert --single-transaction --routines --events" archivedir=/var/backups/mysql workdir=/tmp umask 027 basedate=$(date +"%Y-%m-%d") basename="$dumpprefix$basedate" databases=$(echo show databases | mysql $mysqlopts --skip-column-names |egrep -v "(performance|information)_schema") cd $workdir for db in $databases ; do echo "Dump $db ..." mysqldump $mysqlopts $dumpopts $db |bzip2 >$archivedir/$basename-$db.bz2 ln -f -s $basename-$db.bz2 $archivedir/latest-$db.bz2 done list=$(find $archivedir -name "${dumpprefix}*" -mtime +10) for oldfile in $list ; do echo "deleting old file $oldfile" rm -f $oldfile done
Automysqlbackup
Einfach Paket installieren und bei täglicher Bareos Sicherung den Cron-Job deaktivieren:
aptitude install automysqlbackup cd /etc/cron.daily mv automysqlbackup automysqlbackup.deak
Beispielskript für PostgreSQL Sicherung
Dump Verzeichnis erzeugen:
mkdir /var/backups/postgres
Skript /usr/local/sbin/dump_postgres_dbs.sh:
#!/bin/bash dbuser=postgres dbhost=localhost dumpprefix="dbdump-" dumpopts="" archivedir=/var/backups/postgres workdir=/tmp umask 027 basedate=$(date +"%Y-%m-%d") basename="$dumpprefix$basedate" databases=$(su -c 'psql -t -c "SELECT datname FROM pg_database WHERE datistemplate=FALSE;"' $dbuser) cd $workdir for db in $databases ; do [ $quiet -eq 0 ] && echo $db ... su -c "pg_dump $db" $dbuser |bzip2 >$archivedir/$basename-$db.bz2 ln -f -s $basename-$db.bz2 $archivedir/latest-$db.bz2 done list=$(find $archivedir -name "${dumpprefix}*" -mtime +10) for oldfile in $list ; do [ $quiet -eq 0 ] && echo deleting old file $oldfile rm -f $oldfile done
Titel: "Server-Backup"
Stand: 23.11.2021