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.

FeldAnmerkung
HostnameEs 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 TypSiehe 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 PCServer
onlineRechner ist unregelmäßig am Netzwerk.Rechner ist immer an und erreichbar.
Datenmengeeinige GBGB bis TB
Backupdauermax. 2hmax. 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

(Warnung) 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