|
Letzte
Bearbeitung dieses Dokuments: |
Voraussetzungen für das Verständnis dieses Dokuments:* Generelle Kenntnisse über die Bedienung von Personal-Computer (PC). |
Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:Arbeitszeit: ca. 30 Minuten. |
Dieses Dokument enthält Anleitungen, wie Dateien aus den Verzeichnissen mit den zu sichernden Daten (z.B. /SMB_Disk/daten_gesichert) auf einen 'entfernbaren' Datenträger (z.B. einen USB-Speicher-Stick oder eine Bandkassette) kopiert und bei Bedarf wieder auf die Festplatte des Computers kopiert werden können.
Ein
eigener Abschnitt ist dem Sichern und Wiederherstellen von
Datenbanken gewidmet.
Der Aufbau und Inhalt von Datenbanken kann
nicht direkt kopiert werden. Stattdessen muss die Datenbank
'entladen' werden - d.h. der Aufbau und die Daten werden in einer
oder mehreren sequentiellen Dateien gespeichert. Diese Dateien können
dann auf einen entfernbaren Datenträger kopiert werden.
Bei
der Wiederherstellung muss aus dem Inhalt der sequentiellen Dateien
die Datenbank wieder 'aufgebaut' werden.
Theorie
*
Stufe 1: Minimierung des Schadens bei
technischen Gebrechen
* Stufe
2: Aufbewahrung der gesicherten Daten an einem anderen Ort
(Minimierung der Gefahren der Umwelt)
Vorbedingungen
Sichern
der Daten - Allgemein
* Sammeln
der zu sichernden Dateien
* Kopieren
auf einen USB-Speicher-Stick
* Kopieren
auf eine Bandkassette
Periodisches
Ausführen der Sicherung
Wiederherstellen
der Daten - Allgemein
* vom
USB-Speicher-Stick
* von
der Band-Kassette
Verfahren
für besondere Aufgaben
*
Entladen einer mySQL-Datenbank
*
Wiederaufbau einer mySQL-Datenbank
Eine
Aufzeichnung der Arbeitszeit für das Erfassen von Daten wird
schon nach kurzer Zeit zeigen, wie wertvoll die gespeicherten Daten
sind.
Dabei ist noch nicht einmal der ideelle Wert von
unwiederbringlichen Aufzeichnungen, z.B. die Dokumentation von
Vorlieben bestimmter Kunden oder Entwürfen noch nicht
verwirklichter Projekte, berücksichtigt.
Zusätzlich
zu den Gefahren der Umwelt (Brand, Diebstahl, Wasserschaden) sind bei
einem Computer auch technische Gebrechen möglich.
Besonders
bei technischen Gebrechen, im Konkreten das Versagen der Festplatte
mit den gespeicherten Daten, sind die Informationen komplett verloren
und können nicht mehr aus unzerstörten Resten (wie zum
Beispiel bei einer Beschädigung durch Wasser) rekonstruiert
werden.
Es gibt zwar Anbieter, die die periodische Sicherung und die katastrophensichere Aufbewahrung durchführen – wegen der Kosten sind solche Lösungen für einen Kleinbetrieb aber nicht wirtschaftlich.
Eine
ausreichende Absicherung gegen den Verlust der Daten kann durch
folgende Strategien erreicht werden:
Stufe
1: Minimierung des Schadens bei technischen Gebrechen
Stufe
2: Aufbewahrung der gesicherten Daten an einem anderen Ort
(Minimierung der Gefahren der Umwelt)
Dabei
wird in den Computer, der als Datenserver arbeitet, eine zweite
Festplatte eingebaut.
Auf diese Festplatte werden regelmäßig
(täglich) die zu sichernden Daten kopiert:

Das Risiko, dass beide Festplatten gleichzeitig defekt werden ist minimal.
Bei dieser Lösung bleiben aber noch die Risiken der Gefahren der Umwelt:
Diebstahl:
Der ganze Computer wird gestohlen und damit ist auch die
Festplatte mit den gesicherten Daten verloren.
Höhere
Gewalt:
Der Computer wird durch Feuer, Wasser oder mechanische
Beschädigung (Sturz, Einsturz des Gebäudes) so schwer
beschädigt, dass die Daten auf beiden Festplatten nicht mehr
wieder hergestellt werden können.
Dabei werden die zu sichernden Daten zusätzlich auf einen externen Datenspeicher kopiert und dieser Datenspeicher an einem anderen Ort als der Computer aufbewahrt.

Das Risiko, dass die Festplatte im Computer und der externe Datenspeicher gleichzeitig durch ein technisches Gebrechen oder eine Umweltgefahr beschädigt werden ist bei dieser Lösung minimal und gegenüber anderen Risiken der Datenmanipulation – z.B. nicht rechtzeitig entdeckte Sabotage oder Zerstörung der Daten durch einen Programmfehler – zu vernachlässigen.
Angemeldet (logged in) als Benutzer 'root'.
Kenntnisse eine Editors unter Linux.
Dieser
Abschnitt enthält Muster für Scripts, mit denen in
einzelnen Abschnitten die Sicherung der Daten ausgeführt
wird.
Diese Scripts werden in einem weiteren Script (siehe
Periodisches
Ausführen der Sicherung)
aufgerufen mit dem zu einem bestimmten Zeitpunkt die gesamte
Datensicherung ausgeführt werden kann.
* Sammeln der zu sichernden Dateien
Für
eine 'Zwischenlagerung' ist das Verzeichnis /SMB_Disk/mirror
vorgesehen.
Auf
dieses Verzeichnis werden alle Unterverzeichnisse mit zu sichernden
Daten kopiert – und zwar deswegen weil das Kopieren innerhalb
des Computers schneller ausgeführt wird als das Kopieren auf ein
externes Speichermedium (z.B. Bandkassette, USB-Speicher-Stick) und
das Zeitfenster in dem Inkonsistenzen der Daten auftreten können
minimiert wird.
Erfreulicher Nebeneffekt ist, dass die Daten, wie
sie zum Zeitpunkt der Datensicherung vorhanden waren, bis zur
Durchführung der nächsten Sicherung auch noch auf der
Festplatte vorhanden sind.
In einem späteren Schritt werden die im Verzeichnis /SMB_Disk/mirror enthaltenen Dateien auf das externe Speichermedium (z.B. Bandkassette, USB-Speicher-Stick) in komprimierter Form kopiert
Ein
mögliches Script für das 'Sammeln' wird hier mit dem
Dateinamen /SMB_Disk/daten_gesichert/system_scripts/collect_backup.sh
vorgestellt:
#
#
Verzeichnis mirror komplett löschen und Verzeichnis neu
erstellen
rm -fr /mirror
mkdir /mirror
#
# Kopieren alle
Verzeichnisse mit zu sichernden Dateien
cp -R
/SMB_Disk/daten_gesichert /mirror
cp -R /SMB_Disk/finanz
/mirror
cp -R /SMB_Disk/progs_schreibend /mirror
#
#
Verzeichnis gegen unbefugten Zugriff schützen
chgrp -R
officeadmin /mirror
chmod -R 440 /mirror
# *** Ende des Scripts
***
Damit
das Script gegen unbeabsichtigte Veränderungen durch andere
Benutzer als 'root' geschützt ist, werden folgende
Berechtigungen gesetzt.
Dazu
werden auf eine Kommandozeile (bei laufender GUI in einem
'Terminal'-Fenster) folgende Kommandos ausgeführt:
[root#]
chown
root
/SMB_Disk/daten_gesichert/system_scripts/collect_backup.sh
[root#]
chmod
700 /SMB_Disk/daten_gesichert/system_scripts/collect_backup.sh
Dieses Script wird dann in dem unter Periodisches Ausführen der Sicherung vorgestellten Script aufgerufen.
* Kopieren auf einen USB-Speicher-Stick
Die
Preise von USB-Speicher-Sticks sind in der letzten Zeit rapide
gesunken und deswegen bieten die USB-Speicher-Sticks für das
Sichern von Daten eines Kleinbetriebs eine wesentlich
kostengünstigere Alternative als Bandkassetten.
Nachdem
moderne Computer mit einem USB-Anschluß ausgerüstet sind
fallen (im Gegensatz zu Bandkassetten) Investitionen in zusätzliche
Hardware weg und es sind nur die notwendigen Speichermedien zu
beschaffen.
Damit bei einem notwendigen Suchen einer einzelnen Datei innerhalb einer Archiv-Datei nicht zu große Datenmengen durchsucht werden müssen, wird für jedes einzelne Unterverzeichnis innerhalb des Verzeichnis /mirror eine eigene Archiv-Datei erstellt.
Die
kursiv geschriebenen Teile im folgenden Beispiel-Script sind für
jede Archiv-Datei anzupassen.
Als Muster wird im Beispiel-Script
das Unterverzeichnis /mirror/daten_gesichert
verwendet.
Weiters
wird in dem Beispiel-Script davon ausgegangen, dass der
USB-Speicher-Stick als Unterverzeichnis Unterverzeichnis /media/disk
'eingehängt'
wird.
Abhängig von Ihrer Version des Betriebssystems und dem
Hersteller und der Type des USB-Speicher-Sticks kann diese
Bezeichnung abweichen.
Das
Script erhält den Dateinamen
/SMB_Disk/daten_gesichert/system_scripts/backup_USB_daten_gesichert.sh:
#
#
Das Script ist für das Archivieren der Daten auf einem
USB-Speicher-Stick
#
# Komprimieren der zu sichernden Daten in
einer Datei auf dem USB-Speicher-Stick
tar -cf
/media/disk/backup_daten_gesichert.tar
/mirror/daten_gesichert
#
#
Wenn Dateien mehrerer Unterverzeichnisse in die Archiv-Datei
übertragen werden
# sollen werden die zu sichernden
Unterverzeichnisse aufgezählt:
#
# Komprimieren der zu
sichernden Daten in einer Datei auf dem USB-Speicher-Stick
# tar
-cf /media/disk/backup_daten_gesichert.tar
/mirror/daten_gesichert/Verzeichnis_A
/mirror/daten_gesichert/Verzeichnis_B
#
# *** Ende des Scripts ***
Damit
das Script gegen unbeabsichtigte Veränderungen durch andere
Benutzer als 'root' geschützt ist, werden folgende
Berechtigungen gesetzt.
Dazu werden auf eine Kommandozeile (bei
laufender GUI in einem 'Terminal'-Fenster) folgende Kommandos
ausgeführt:
[root#]
chown
root
/SMB_Disk/daten_gesichert/system_scripts/backup_USB_daten_gesichert.sh
[root#]
chmod
700
/SMB_Disk/daten_gesichert/system_scripts/backup_USB_daten_gesichert.sh
* Kopieren auf eine Bandkassette
Die Daten im Verzeichnis /mirror mit allen Unterverzeichnissen werden komprimiert auf eine Band-Kassette kopiert.
Ein
mögliches Script ist folgendes mit dem Dateinamen
/SMB_Disk/daten_gesichert/system_scripts/backup_tape.sh:
#
#
Das Script ist für das Archivieren der Daten auf einem
#
Bandlaufwerk am SCSI-Anschluß (/dev/st0)
#
#
Zurueckspulen des Bandes
mt -f /dev/st0 rewind
#
#
Komprimieren der Dateien und Kopieren auf das Band
tar -cvMpf
/dev/st0 /mirror
#
# Entladen der Kassette
mt -f /dev/st0
offline
# *** Ende des Scripts ***
Damit
das Script gegen unbeabsichtigte Veränderungen durch andere
Benutzer als 'root' geschützt ist, werden folgende
Berechtigungen gesetzt.
Dazu werden auf eine Kommandozeile (bei
laufender GUI in einem 'Terminal'-Fenster) folgende Kommandos
ausgeführt:
[root#]
chown
root /SMB_Disk/daten_gesichert/system_scripts/backup_tape.sh
[root#]
chmod
700 /SMB_Disk/daten_gesichert/system_scripts/backup_tape.sh
Eine erprobte Methode ist, mit der Service-Application 'cron' (siehe Abschalten eines PC mit Linux um eine bestimmte Uhrzeit) einmal täglich eine Script-Datei zu starten, in der wieder Script-Dateien für einzelne Sicherungsaufgaben gestartet werden.
Ein
Vorschlag für eine solche Script-Datei mit Namen
/SMB_Disk/daten_gesichert/system_scripts/end_of_day.sh
und folgendem Inhalt:
#
#
Datenbanken entladen; bei Bedarf
auskommentieren
#/SMB_Disk/daten_gesichert/system_scripts/db_backup.sh
#
#
Zu sichernde Dateien auf das Verzeichnis /mirror
kopieren
/SMB_Disk/daten_gesichert/system_scripts/collect_backup.sh
#
#
Dateien auf dem USB-Speicher-Stick löschen
rm -f
/media/disk/*
#
#
Dateien im Verzeichnis /mirror auf den USB-Speicher-Stick kopieren
#
(bei Sicherung auf ein Band
löschen)
/SMB_Disk/daten_gesichert/system_scripts/backup_USB.sh
#
Varianten wenn die zu sichernden Daten auf mehrere Archiv-Dateien
aufgeteilt werden.
#/SMB_Disk/daten_gesichert/system_scripts/backup_USB_daten_gesichert.sh
#/SMB_Disk/daten_gesichert/system_scripts/backup_USB_xxx.sh
#/SMB_Disk/daten_gesichert/system_scripts/backup_USB_yyy.sh
umount
/media/disk
#
#
Dateien im Verzeichnis /mirror auf das Band kopieren;
# Bei Bedarf
den Kommentar
entfernen.
#/SMB_Disk/daten_gesichert/system_scripts/backup_tape.sh
#
#
Tagesende: Computer abschalten.
shutdown -h now
#
# *** Ende
des Scripts ***
Diese
Datei liegt im Verzeichnis /SMB_Disk/daten_gesichert damit diese
Datei auch in die periodische Sicherung einbezogen wird.
Nachteil
ist, daß diese Datei von vielen Benutzern auch geändert
werden könnte. Um diese Gefahr abzuwenden, wird das Verzeichnis
dem Owner 'root' zugeordnet und damit der Zugriff auf Dateien nur für
'root' erlaubt.
Dazu werden auf eine Kommandozeile (bei laufender
GUI in einem 'Terminal'-Fenster) folgende Kommandos
ausgeführt:
[root#]
chown -R root
/SMB_Disk/daten_gesichert/system_scripts
[root#]
chmod -R 700
/SMB_Disk/daten_gesichert/system_scripts
Das automatische Ausführen dieses Scripts ist bereits unter Abschalten eines PC mit Linux um eine bestimmte Uhrzeit beschrieben.
In
neueren Versionen der einzelnen Linux-Distributionen wird der
Dateierweiterung des Typs 'tar' das Programm Archivmanager
zugeordnet.
Die Auswahlmöglichkeiten zum Bearbeiten der
Entpacken der Archiv-Datei werden nach dem Anklicken des Symbols mit
der rechten Maustaste angezeigt.
Wählen
Sie Mit
>>Archivmanager<< öffnen aus
und Sie sehen anschließen die Verzeichnisstruktur.
Innerhalb
dieser können Sie zur gewünschten Datei manövrieren
und diese wieder 'entpacken' – die Anweisungen des Programms
Archivmanager sind selbsterklärend.

Für
das Ausführen der folgenden Kommandos ist eine Anmeldung als
'root' erforderlich.
Bei einer installierten GUI werden die
Kommandos in einem Terminal-Fenster eingegeben.
Das
Terminal-Fenster wird durch die Auswahl Anwendungen-Zubehör-Terminal
geöffnet.
Bei
den folgenden Beispielen wird angenommen, daß das Bandlaufwerk
an einem SCSI-Adapter angeschlossen ist.
Da die Dateien auf dem
Band in sequentieller Reihenfolge gesichert sind, kann es bis zu
einigen Stunden dauern, bis einzelne Verzeichnisse oder Dateien
gelistet oder vom Band auf die Festplatte kopiert werden.
Während
der Wartezeit werden keine Meldungen angezeigt; es kann nur am
Bandlaufwerk selbst erkannt werden ob das Band bewegt wird.
Das Auflisten bzw. Wiederherstellen von einzelnen Dateien, einzelner Verzeichnisse oder des gesamten Inhalt des Bandes erfolgt durch folgende Kommandos:
Listen
des gesamten Inhalts des Bandes:
tar
tvf /dev/st0
Listen
des Inhaltes eines Verzeichnisses (Beispiel
/SMB_Disk/band_spiegel/daten_gesichert/Download):
tar
tvf /dev/st0 /SMB_Disk/band_spiegel/daten_gesichert/Download
Prüfen
ob eine Datei vorhanden ist (Beispiel
/SMB_Disk/band_spiegel/daten_gesichert/Download/rpm/xyz.rpm):
tar
tvf /dev/st0
/SMB_Disk/band_spiegel/daten_gesichert/Download/rpm/xyz.rpm
Bei
den Beispielen für das Kopieren vom Band auf die Festplatte wird
die Original-Struktur der Verzeichnisse wieder hergestellt.
Soll
der Inhalt des Bandes in ein anderes Verzeichnis kopiert werden dann
ist der Befehl cd
/ durch
cd
/ZielVerzeichnis
zu
ersetzen.
Dbei ist /ZielVerzeichnis
durch
ein Verzeichnis Ihrer Wahl zu ersetzen. Innerhalb dieses
Verzeichnisses wird dann die originale Verzeichnis-Struktur wieder
abgebildet.
Kopieren
des gesamten Inhalts des Bandes auf die Festplatte:
cd
/
tar xvf /dev/st0
Kopieren
eines Verzeichnisses (Beispiel
/SMB_Disk/band_spiegel/daten_gesichert/Download)
vom Band auf die Festplatte:
cd
/
tar
xvf /dev/st0 /SMB_Disk/band_spiegel/daten_gesichert/Download
Kopieren
einer Datei (Beispiel
/SMB_Disk/band_spiegel/daten_gesichert/Download/rpm/xyz.rpm)
auf die Festplatte:
cd
/
tar
xvf /dev/st0
/SMB_Disk/band_spiegel/daten_gesichert/Download/rpm/xyz.rpm
Bei
den meisten Datenbank-Systemen können die Dateien mit dem Inhalt
der Datenbank nicht direkt auf ein Speicher-Medium kopiert werden.
Um
den Inhalt von Datenbanken sichern zu können, ist es notwendig,
den Inhalt in eine sequentielle Datei zu übertragen. Dieser
Vorgang wird als 'Entladen' der Datenbank bezeichnet.
Wie
das 'Entladen' im Detail auszuführen ist, hängt vom
jeweiligen Hersteller des Datenbank-Systems ab.
Anschließend
wird ein Beispiel für das 'Entladen' einer mySQL-Datenbank (mit
dem Namen js_projassist
)
vorgestellt.
Wie das Muster-Script Ihren speziellen Bedürfnissen
angepaßt werden kann ist nach dem Muster-Script erläutert.
Ein
mögliches Script ist folgendes mit dem Dateinamen
/SMB_Disk/daten_gesichert/system_scripts/db_backup.sh:
#
#
Erstellen des Verzeichnisses für die sequentiellen Dateien
# mit
den Inhalten der Datenbanken.
mkdir
/SMB_Disk/daten_gesichert/DB_Dumps
#
# Entladen der
Datenbank js_projassist.
# 'root' hat Zugriffsrecht auf die
Datenbank.
mysqldump js_projassist >
/SMB_Disk/daten_gesichert/DB_Dumps/js_projassist.sql
#
# Setzen
der entsprechenden Berechtigungen damit nur 'root'
# die
entladenen Daten ansehen kann.
chown root
/SMB_Disk/daten_gesichert/DB_Dumps/js_projassist.sql
chmod 400
/SMB_Disk/daten_gesichert/DB_Dumps/js_projassist.sql
#
# ***
Ende des Scripts ***
Damit
das Script gegen Veränderungen durch andere Benutzer als 'root'
geschützt ist, werden folgende Berechtigungen gesetzt.
Dazu
werden auf eine Kommandozeile (bei laufender GUI in einem
'Terminal'-Fenster) folgende Kommandos ausgeführt:
[root#]
chown
root /SMB_Disk/daten_gesichert/system_scripts/db_backup.sh
[root#]
chmod
400 /SMB_Disk/daten_gesichert/system_scripts/db_backup.sh
Wie
bereits erwähnt, ist Voraussetzung, daß 'root'
Zugriffsrechte auf die Datenbank js_projassist
hat.
Wurde
der Zugriffsschutz erhöht und 'root' vom Zugriff ausgeschlossen,
muss in den Parametern ein Anwender mit Zugriffsberechtigung (mysql
im
folgenden Beispiel) und das Passwort (amEsadS
im
folgenden Beispiel) 'mitgegeben' werden:
mysqldump
-u mysql -pamEsadS js_projassist >
/SMB_Disk/daten_gesichert/DB_Dumps/js_projassist.sql
MySQL hat mit den dokumentierten Kommandos eine sequentielle Datei erzeugt, die SQL-Kommandos erhält, die die 'entladene' Datenbank wieder erstellen können.
Wie
schon beim 'Entladen' der Datenbank dokumentiert, sind auch die
Kommandos für das 'Laden' einer Datenbank für jeden
Hersteller unterschiedlich.
Das nachfolgend dokumentierte Kommando
bezieht sich auf eine mySQL-Datenbank:
mysql
< /SMB_Disk/daten_gesichert/DB_Dumps/js_projassist.sql
Bei mySQL kann aus der sequentiellen Datei mit den 'entladenen' Daten eine komplette Datenbank wieder aufgebaut werden.