Backup

  • Computer und insbesondere die Festplatten können kaputt gehen. Mehr noch: Sie werden auf jeden Fall irgendwann kaputt gehen. Von den heute verkauften Festplatten werden in 3 Jahren noch 90% funktionieren, in 5 Jahren noch 80%, in 10 Jahren weniger als die Hälfte. Dann sind auf einen Schlag und üblicherweise ohne Vorwarnung sämtliche darauf gespeicherten Daten verloren-

  • Ein Schädling kann sich in einer Mail oder über eine infizierte Website bei Ihnen einschleichen, und Ihre Daten entweder löschen oder verschlüsseln, so dass Sie nicht mehr dran kommen.

Darum sind Backups wichtig. Backups sollten so häufig erstellt werden, dass Sie maximal so viele Daten verlieren, wie Sie wieder rekonstruieren können. Ein guter Ansatz für eine Arztpraxis ist: täglich oder zweimal täglich. Für lebhafte Gruppenpraxen empfiehtl sich sogar ein Betrieb von mehreren Servern mit permanenter Spiegelung der Datenbanken. Aber das würde hier zu weit führen. Für alles, was über simples Backup hinausgeht, sollten Sie Kompetenz lieber einkaufen, statt selber etwas versuchen.

Es gibt verschiedene Backup-Programe für die oben genannten Datenbanken. Sie können sogar die Datenbank mit Ihren normalen Systembackup mitsichern lassen, sollten aber dann darauf achten, dass das Backup-Programm für die Sicherung von Datenbanken geeignet ist (Sonst könnte es passieren, dass das Backup zu einem Moment erfolgt in dem die Datenbank gerade in einem inkonsistenten Zustand ist, und dann unbrauchbar wird).

Es gibt aber auch einen einfachen Weg mit Bordmitteln: Alle drei genannten Datenbankserver bringen Programme zur Datensicherung mit. Bei mysql und mariadb können Sie die komplette Datenbank so sichern:

mysqldump -h server -u username -ppasswort elexis>elexisdump.sql

Damit Sie das nicht manuell tun müssen, erstellen Sie am besten eine Aufgabe (Windows) bzw. einen Cron-Job (Linux), der dieses Backup so oft wie gewünscht laufen lässt, und der Zieldatei jedesmal einen eigenen Namen gibt.

Hier ein Beispiel für einen Linux-Server:

 #!/bin/bash

######################
# Initialize variables
#######################
fdate=`date '+%Y-%m-%d-%H%M'`
filename='elexis_'$fdate'.sql'
mysqlhost=192.168.0.2
mysqlport=3306
database=elexis
log=/root/backup.log
dest=/srv/backups/database

echo `date` >$log
#####################
# Dump database 
#####################
echo $filename >> $log
mysqldump -h $mysqlhost -P $mysqlport --protocol=tcp -u backupuser -pbackuppassword $database >$filename
rc=$?; if [[ $rc != 0 ]]; then
        echo dump failed with error code $rc >>$log
        exit $rc
fi
echo mysqldump ended normally >>$log

Dieses Skript sichert die Elexisdatenbank bei jedem Aufruf als Datei mit dem Namen elexis_yyyy-MM-dd-HHmm.sql im Verzeichnis /srv/backups/database

Beachten Sie, dass wir hier einen anderen username und passwort vergeben haben, als für den normalen Zugriff. Der Backup-user wurde folgendermassen erstellt:

create user backupuser@'localhost' identified by 'backuppassword';
grant SUPER on *.* to backupuser@'localhost';

Das Backup Script wird von einem Systemuser gestartet, welcher als einziger auf das Backupverzeichnis schreibend zugreifen darf. Dadurch wird eine zusätzliche Hürde für Verschküsselungs-Trojaner errichtet. Dennoch sollten Sie eine weitere Backup-Stufe ausserhalb des Praxis-Netzwerks einrichten, um physikalisch sicher getrennte Backup-Dateien zu haben, die keinesfalls von einem Schädling zerstört werden können.

Hier bei weitergehendem Interesse noch mehr Lesestoff zum Thema Backup.