next up previous contents
Nächste Seite: Verwendung von storeBackup (Beispiele) Aufwärts: Interna Vorherige Seite: Late Links Backups   Inhalt

Replikation

Du solltest zumindest das Kapitel Wie storeBackups Replikation funktioniert gelesen haben - es gibt Dir Erklärungen zu den grundlegenden Konzepten und Konfigurationen.

Du musst wissen, dass die Replikation als Erweiterung von lateLinks realisiert ist, um zu verstehen, wie sie im Detail funktioniert,

Die Interna der Replikationsfunktionalität werden an Beispielen erläutert. Zuerst erstellen wir ein Backup mit einer Replikation:

$ mkdir /tmp/a
$ cd /tmp/a
$ mkdir -p source backup/default repl delta
$ cp /bin/ls source
$ cp /bin/ls source/ls1
$ storeBackupReplicationWizard.pl -m backup -c repl -d delta -S default
WARNING 2013.08.17 10:12:44 25548 cannot find any existing backup at master backup directory </tmp/a/backup>
INFO    2013.08.17 10:12:44 25548 1 series chosen:
INFO    2013.08.17 10:12:44 25548       <default>
INFO    2013.08.17 10:12:44 25548 wrote master backup configuration file </tmp/a/backup/storeBackupBaseTree.conf>
INFO    2013.08.17 10:12:44 25548 wrote backup copy configuration file </tmp/a/repl/storeBackupBaseTree.conf>
INFO    2013.08.17 10:12:44 25548 wrote delta cache configuration file </tmp/a/delta/deltaCache.conf>

Schauen wir nach, was storeBackupReplicationWizard.pl generiert hat:

$ cat backup/storeBackupBaseTree.conf | egrep -v '^\s*$|^#'
backupTreeName='Master Backup'
backupType=master
seriesToDistribute='default'
deltaCache=/tmp/a/delta

$ cat delta/deltaCache.conf | egrep -v '^\s*$|^#'
backupCopy0='Backup Copy' 'default'
;backupCopy1=
;backupCopy2=
;backupCopy3=
;backupCopy4=
;backupCopy5=
;backupCopy6=
;backupCopy7=
;backupCopy8=
;backupCopy9=

$ cat repl/storeBackupBaseTree.conf | egrep -v '^\s*$|^#'
backupTreeName='Backup Copy'
backupType=copy
seriesToDistribute='default'
deltaCache=/tmp/a/delta

Folgende Dateien sind in den Verzeichnissen:

$ find . -print | sort
.
./backup
./backup/default
./backup/storeBackupBaseTree.conf
./delta
./delta/deltaCache.conf
./repl
./repl/storeBackupBaseTree.conf
./source
./source/ls
./source/ls1

Jetzt erstellen wir das erste Backup mit lateLinks:

$ storeBackup.pl -s source -b backup --lateLinks
.....
$ find . -print | sort
.
./backup
./backup/default
./backup/default/2013.08.17_10.13.41
./backup/default/2013.08.17_10.13.41/ls1.bz2
./backup/default/2013.08.17_10.13.41/.md5CheckSums.bz2
./backup/default/2013.08.17_10.13.41/.md5CheckSums.info
./backup/default/2013.08.17_10.13.41/.storeBackupLinks
./backup/default/2013.08.17_10.13.41/.storeBackupLinks/linkFile.bz2
./backup/storeBackupBaseTree.conf
./delta
./delta/deltaCache.conf
./repl
./repl/storeBackupBaseTree.conf
./source
./source/ls
./source/ls1

Bis jetzt nichts Neues. Eine komprimierte Version von ls1 in source befindet sich in backup. Die Datei ls fehlt dort aufgrund der Deduplikation. Weiterhin befinden sich die Metadaten sowie linkFile (siehe voriges Kapitel) in backup.

Wir beenden das Backup mit storeBackupUpdateBackup.pl:

$ storeBackupUpdateBackup.pl -b backup
BEGIN     2013.08.17 10:14:59 25914 checking references and backup copying in <backup>
VERSION   2013.08.17 10:14:59 25914 storeBackupUpdateBackup.pl, 3.4 +
INFO      2013.08.17 10:14:59 25914 creating lock file </tmp/storeBackup.lock>
INFO      2013.08.17 10:14:59 25914 reading <backup/storeBackupBaseTree.conf>
INFO      2013.08.17 10:14:59 25914 master backup: checking <Master Backup/default>
INFO      2013.08.17 10:14:59 25914     copying <2013.08.17_10.13.41> to </tmp/a/delta/default>
INFO      2013.08.17 10:14:59 25914 scanning directory <backup> for existing backups
INFO      2013.08.17 10:14:59 25914 scanning directory <backup/default> for existing backups
STATISTIC 2013.08.17 10:14:59 25914 found 1 backup series, 1 backups, 0 renamed backups
INFO      2013.08.17 10:14:59 25914 consistency check finished successfully
INFO      2013.08.17 10:14:59 25914 found no references to backups from lateLinks that need
                                    storeBackupUpdateBackup run
INFO      2013.08.17 10:14:59 25914 (1/0) updating </tmp/a/backup/default/2013.08.17_10.13.41>
INFO      2013.08.17 10:14:59 25914 phase 1: mkdir, symlink and compressing files
STATISTIC 2013.08.17 10:14:59 25914 created 0 directories
STATISTIC 2013.08.17 10:14:59 25914 created 0 symbolic links
STATISTIC 2013.08.17 10:14:59 25914 compressed 0 files
STATISTIC 2013.08.17 10:14:59 25914 used 0.0  instead of 0.0  (0 <- 0 ; 0.0%)
INFO      2013.08.17 10:14:59 25914 phase 2: setting hard links
STATISTIC 2013.08.17 10:14:59 25914 linked 1 files
INFO      2013.08.17 10:14:59 25914 phase 3: setting file permissions
STATISTIC 2013.08.17 10:14:59 25914 set permissions for 2 files
INFO      2013.08.17 10:14:59 25914 phase 4: setting directory permissions
STATISTIC 2013.08.17 10:14:59 25914 set permissions for 0 directories
INFO      2013.08.17 10:14:59 25914 reading <backup/storeBackupBaseTree.conf>
INFO      2013.08.17 10:14:59 25914 scanning directory <backup> for existing backups
INFO      2013.08.17 10:14:59 25914 scanning directory <backup/default> for existing backups
STATISTIC 2013.08.17 10:14:59 25914 found 1 backup series, 1 backups, 0 renamed backups
INFO      2013.08.17 10:14:59 25914 consistency check finished successfully
INFO      2013.08.17 10:14:59 25914 found no references to backups from lateLinks that need
                                    storeBackupUpdateBackup run
INFO      2013.08.17 10:14:59 25914 deleting in deltaCache </tmp/a/delta> processedBackups
INFO      2013.08.17 10:14:59 25914     age for deletion is > 99d (delete backups older than
                                        Fri 2013.05.10 10:14:59)
STATISTIC 2013.08.17 10:14:59 25914                       duration = 1s
STATISTIC 2013.08.17 10:14:59 25914  [sec] |      user|    system
STATISTIC 2013.08.17 10:14:59 25914 -------+----------+----------
STATISTIC 2013.08.17 10:14:59 25914 process|      0.07|      0.03
STATISTIC 2013.08.17 10:14:59 25914 childs |      0.05|      0.00
STATISTIC 2013.08.17 10:14:59 25914 -------+----------+----------
STATISTIC 2013.08.17 10:14:59 25914 sum    |      0.12|      0.03 => 0.15
INFO      2013.08.17 10:14:59 25914 syncing ...
END       2013.08.17 10:14:59 25914 checking references and copying in <backup>

$ find . -print | sort
.
./backup
./backup/default
./backup/default/2013.08.17_10.13.41
./backup/default/2013.08.17_10.13.41/ls1.bz2
./backup/default/2013.08.17_10.13.41/ls.bz2
./backup/default/2013.08.17_10.13.41/.md5CheckSums.bz2
./backup/default/2013.08.17_10.13.41/.md5CheckSums.info
./backup/default/2013.08.17_10.13.41/.storeBackupLinks
./backup/storeBackupBaseTree.conf
./delta
./delta/default
./delta/default/2013.08.17_10.13.41
./delta/default/2013.08.17_10.13.41/ls1.bz2
./delta/default/2013.08.17_10.13.41/.md5CheckSums.bz2
./delta/default/2013.08.17_10.13.41/.md5CheckSums.info
./delta/default/2013.08.17_10.13.41/.storeBackupLinks
./delta/default/2013.08.17_10.13.41/.storeBackupLinks/linkFile.bz2
./delta/deltaCache.conf
./delta/processedBackups
./repl
./repl/storeBackupBaseTree.conf
./source
./source/ls
./source/ls1

Nun hat sich vieles verändert:

Jetzt läuft storeBackupUpdateBackup.pl ein zweites Mal, aber auf dem Verzeichnis repl:

$ storeBackupUpdateBackup.pl -b repl
BEGIN     2013.08.17 10:33:03 28608 checking references and backup copying in <repl>
VERSION   2013.08.17 10:33:03 28608 storeBackupUpdateBackup.pl, 3.4 +
INFO      2013.08.17 10:33:03 28608 creating lock file </tmp/storeBackup.lock>
INFO      2013.08.17 10:33:03 28608 reading <repl/storeBackupBaseTree.conf>
INFO      2013.08.17 10:33:03 28608 reading </tmp/a/delta/deltaCache.conf>
INFO      2013.08.17 10:33:03 28608 copying </tmp/a/delta/default/2013.08.17_10.13.41> to <repl/default>
INFO      2013.08.17 10:33:03 28608 scanning directory <repl> for existing backups
INFO      2013.08.17 10:33:03 28608 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.17 10:33:03 28608 found 1 backup series, 1 backups, 0 renamed backups
INFO      2013.08.17 10:33:03 28608 consistency check finished successfully
INFO      2013.08.17 10:33:03 28608 found no references to backups from lateLinks that need
                                    storeBackupUpdateBackup run
INFO      2013.08.17 10:33:03 28608 (1/0) updating </tmp/a/repl/default/2013.08.17_10.13.41>
INFO      2013.08.17 10:33:03 28608 phase 1: mkdir, symlink and compressing files
STATISTIC 2013.08.17 10:33:03 28608 created 0 directories
STATISTIC 2013.08.17 10:33:03 28608 created 0 symbolic links
STATISTIC 2013.08.17 10:33:03 28608 compressed 0 files
STATISTIC 2013.08.17 10:33:03 28608 used 0.0  instead of 0.0  (0 <- 0 ; 0.0%)
INFO      2013.08.17 10:33:03 28608 phase 2: setting hard links
STATISTIC 2013.08.17 10:33:03 28608 linked 1 files
INFO      2013.08.17 10:33:03 28608 phase 3: setting file permissions
STATISTIC 2013.08.17 10:33:03 28608 set permissions for 2 files
INFO      2013.08.17 10:33:03 28608 phase 4: setting directory permissions
STATISTIC 2013.08.17 10:33:03 28608 set permissions for 0 directories
INFO      2013.08.17 10:33:03 28608 reading <repl/storeBackupBaseTree.conf>
INFO      2013.08.17 10:33:03 28608 marked <default/2013.08.17_10.13.41> as linked in </tmp/a/delta>
INFO      2013.08.17 10:33:03 28608 scanning directory <repl> for existing backups
INFO      2013.08.17 10:33:03 28608 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.17 10:33:03 28608 found 1 backup series, 1 backups, 0 renamed backups
INFO      2013.08.17 10:33:03 28608 consistency check finished successfully
INFO      2013.08.17 10:33:03 28608 found no references to backups from lateLinks that need
                                    storeBackupUpdateBackup run
INFO      2013.08.17 10:33:03 28608 backup </tmp/a/delta/default/2013.08.17_10.13.41> copied to <Backup Copy>
INFO      2013.08.17 10:33:03 28608     moving backup to </tmp/a/delta/processedBackups/default>
INFO      2013.08.17 10:33:03 28608 deleting in deltaCache </tmp/a/delta> processedBackups
INFO      2013.08.17 10:33:03 28608     age for deletion is > 99d (delete backups older than
                                        Fri 2013.05.10 10:33:03)
INFO      2013.08.17 10:33:03 28608 checking series <default>
INFO      2013.08.17 10:33:03 28608     default -> 2013.08.17_10.13.41 - not old enough to delete
STATISTIC 2013.08.17 10:33:03 28608                       duration = 1s
STATISTIC 2013.08.17 10:33:03 28608  [sec] |      user|    system
STATISTIC 2013.08.17 10:33:03 28608 -------+----------+----------
STATISTIC 2013.08.17 10:33:03 28608 process|      0.09|      0.01
STATISTIC 2013.08.17 10:33:03 28608 childs |      0.05|      0.00
STATISTIC 2013.08.17 10:33:03 28608 -------+----------+----------
STATISTIC 2013.08.17 10:33:03 28608 sum    |      0.14|      0.01 => 0.15
INFO      2013.08.17 10:33:03 28608 syncing ...
END       2013.08.17 10:33:03 28608 checking references and copying in <repl>

$ find . -print | sort
.
./backup
./backup/default
./backup/default/2013.08.17_10.13.41
./backup/default/2013.08.17_10.13.41/ls1.bz2
./backup/default/2013.08.17_10.13.41/ls.bz2
./backup/default/2013.08.17_10.13.41/.md5CheckSums.bz2
./backup/default/2013.08.17_10.13.41/.md5CheckSums.info
./backup/default/2013.08.17_10.13.41/.storeBackupLinks
./backup/storeBackupBaseTree.conf
./delta
./delta/default
./delta/default/2013.08.17_10.13.41.copied
./delta/default/2013.08.17_10.13.41.linked
./delta/deltaCache.conf
./delta/processedBackups
./delta/processedBackups/default
./delta/processedBackups/default/2013.08.17_10.13.41
./delta/processedBackups/default/2013.08.17_10.13.41/ls1.bz2
./delta/processedBackups/default/2013.08.17_10.13.41/.md5CheckSums.bz2
./delta/processedBackups/default/2013.08.17_10.13.41/.md5CheckSums.info
./delta/processedBackups/default/2013.08.17_10.13.41/.storeBackupLinks
./delta/processedBackups/default/2013.08.17_10.13.41/.storeBackupLinks/linkFile.bz2
./repl
./repl/default
./repl/default/2013.08.17_10.13.41
./repl/default/2013.08.17_10.13.41/ls1.bz2
./repl/default/2013.08.17_10.13.41/ls.bz2
./repl/default/2013.08.17_10.13.41/.md5CheckSums.bz2
./repl/default/2013.08.17_10.13.41/.md5CheckSums.info
./repl/default/2013.08.17_10.13.41/.storeBackupLinks
./repl/storeBackupBaseTree.conf
./source
./source/ls
./source/ls1

Ein Blick auf die Dateiliste und den Log von storeBackupUpdateBackup.pl zeigt:

Mit Hilfe des oben aufgeführten Beispiels ist es einfach zu erkennen, wie das Replikationskonzept umgesetzt ist:62

  1. Starte storeBackup.pl -b backup und erzeuge das lateLinks basierende Delta-Backup in Verzeichnis backup.
    1. Kopiere die Deltas vom Backup zum Delta-Cache (Directory delta).
    2. Vervollständige das Backup (erzeuge die Hardlinks usw.) im Verzeichnis backup.
  2. Starte storeBackupUpdateBackup.pl -b repl und
    1. kopiere die Deltas aus dem Delta-Cache (Directory delta) in das Zielverzeichnis der Replikation (repl).
    2. schreibe den Namen der Replikation (Backup Copy) in Datei timestamp.copied
    3. vervollständige das Ziel der Replikation im Verzeichnis repl (erzeuge Hardlinks usw.). (Im Prinzip dasselbe wie im oben beschriebenen Schritt 1b.)
    4. verschiebe das soeben kopierte Backup im Delta-Cache in das Unterverzeichnis processedBackups und schreibe den Namen der Replikation (Backup Copy) in die Datei timestamp.linked

Mit Kenntnis der grundlegenden Prinzipien der Replikation ist es einfach, darauf zu reagieren, wenn etwas schief geht. Es geht immer ums Verschieben, Kopieren oder darum, Zeilen an eine Datei anzuhängen. Simulieren wir nun eine abgebrochene Replikation. (Es folgt ein neues Beispiel von Anfang an.)

Als erstes erzeugen wir ein neues Backup und replizieren es:

$ mkdir /tmp/x
$ cd /tmp/x
$ mkdir -p source backup/default repl delta
$ cp /bin/ls source
$ storeBackupReplicationWizard.pl -m backup -c repl -d delta -S default
$ storeBackup.pl -s source -b backup --lateLinks
$ storeBackupUpdateBackup.pl -b backup
$ storeBackupUpdateBackup.pl -b repl

Wir fügen noch eine Datei zu source hinzu und starten das Backup sowie die Replikation:

$ cp /bin/pwd source
$ storeBackup.pl -s source -b backup --lateLinks
$ storeBackupUpdateBackup.pl -b backup
$ storeBackupUpdateBackup.pl -b repl

Die folgenden Backups wurden erzeugt:

$ ls -1 backup/default/
2013.08.18_09.45.16
2013.08.18_09.49.21

Nun stellen wir uns vor, das zweite Backup sei korrupt - vielleicht wegen einer Unterbrechung des Laufs von storeBackupUpdateBackup.pl, aufgetretenen Schreibfehlern oder warum auch immer. Da wir die Details der Fehler und welche Dateien betroffen wären nicht wüssten, löschen wir das soeben replizierte Backup:

$ ls -1 repl/default/
2013.08.18_09.45.16
2013.08.18_09.49.21
$ rm -r repl/default/2013.08.18_09.49.21

Wiederholtes Starten von storeBackupUpdateBackup.pl auf der Replikation (ein Backup fehlt!) resultiert in:

$ storeBackupUpdateBackup.pl -b repl
BEGIN     2013.08.18 09:57:46  6852 checking references and backup copying in <repl>
VERSION   2013.08.18 09:57:46  6852 storeBackupUpdateBackup.pl, 3.4 +
INFO      2013.08.18 09:57:46  6852 creating lock file </tmp/storeBackup.lock>
INFO      2013.08.18 09:57:46  6852 reading <repl/storeBackupBaseTree.conf>
INFO      2013.08.18 09:57:46  6852 reading </tmp/x/delta/deltaCache.conf>
INFO      2013.08.18 09:57:46  6852 scanning directory <repl> for existing backups
INFO      2013.08.18 09:57:46  6852 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 09:57:46  6852 found 1 backup series, 1 backups, 0 renamed backups
INFO      2013.08.18 09:57:46  6852 consistency check finished successfully
INFO      2013.08.18 09:57:46  6852 found no references to backups from lateLinks that need
                                    storeBackupUpdateBackup run
INFO      2013.08.18 09:57:46  6852 everything is updated, nothing to do
INFO      2013.08.18 09:57:46  6852 deleting in deltaCache </tmp/x/delta> processedBackups
INFO      2013.08.18 09:57:46  6852     age for deletion is > 99d (delete backups older
                                        than Sat 2013.05.11 09:57:46)
INFO      2013.08.18 09:57:46  6852 checking series <default>
INFO      2013.08.18 09:57:46  6852     default -> 2013.08.18_09.45.16 - not old enough to delete
INFO      2013.08.18 09:57:46  6852     default -> 2013.08.18_09.49.21 - not old enough to delete
STATISTIC 2013.08.18 09:57:46  6852                       duration = 1s
STATISTIC 2013.08.18 09:57:46  6852  [sec] |      user|    system
STATISTIC 2013.08.18 09:57:46  6852 -------+----------+----------
STATISTIC 2013.08.18 09:57:46  6852 process|      0.08|      0.01
STATISTIC 2013.08.18 09:57:46  6852 childs |      0.05|      0.00
STATISTIC 2013.08.18 09:57:46  6852 -------+----------+----------
STATISTIC 2013.08.18 09:57:46  6852 sum    |      0.13|      0.01 => 0.14
INFO      2013.08.18 09:57:46  6852 syncing ...
END       2013.08.18 09:57:46  6852 checking references and copying in <repl>

$ find repl -print | sort
repl
repl/default
repl/default/2013.08.18_09.45.16
repl/default/2013.08.18_09.45.16/ls.bz2
repl/default/2013.08.18_09.45.16/.md5CheckSums.bz2
repl/default/2013.08.18_09.45.16/.md5CheckSums.info
repl/default/2013.08.18_09.45.16/.storeBackupLinks
repl/storeBackupBaseTree.conf

- nichts. storeBackupUpdateBackup.pl vermutet, dass alles passt, weil nichts mehr zu replizieren ist. (Die Kontrolldateien zeigen an, dass alles perfekt funktionierte.)

Wenn dieser Fehler nicht behoben wird, wird die Replikation beim nächsten Backup in Fehler laufen. Um das zu verdeutlichen, provozieren wir diesen Fehler:

$ storeBackup.pl -s source -b backup --lateLinks
$ storeBackupUpdateBackup.pl -b backup
$ storeBackupUpdateBackup.pl -b repl
$ storeBackupUpdateBackup.pl -b repl
BEGIN     2013.08.18 10:06:06  7050 checking references and backup copying in <repl>
VERSION   2013.08.18 10:06:06  7050 storeBackupUpdateBackup.pl, 3.4 +
INFO      2013.08.18 10:06:06  7050 creating lock file </tmp/storeBackup.lock>
INFO      2013.08.18 10:06:06  7050 reading <repl/storeBackupBaseTree.conf>
INFO      2013.08.18 10:06:06  7050 reading </tmp/x/delta/deltaCache.conf>
INFO      2013.08.18 10:06:06  7050 copying </tmp/x/delta/default/2013.08.18_10.05.54> to <repl/default>
INFO      2013.08.18 10:06:07  7050 scanning directory <repl> for existing backups
INFO      2013.08.18 10:06:07  7050 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 10:06:07  7050 found 1 backup series, 2 backups, 0 renamed backups
ERROR     2013.08.18 10:06:07  7050 FATAL ERROR: link <../2013.08.18_09.49.21> to non existing dir in
                                    </tmp/x/repl/default/2013.08.18_10.05.54/.storeBackupLinks/linkTo>
ERROR     2013.08.18 10:06:07  7050 found 1 inconsistencies, please repair and check again

Wie die FATAL ERROR Meldung zeigt, wurde ein fehlendes Backup festgestellt - es gibt daher keine Chance, die Hardlinks zu erstellen.

Ein Blick auf die Dateien im Delta Cache (delta) und das Zielverzeichnis der Replikation (repl) zeigt:

$ find delta repl -print | sort
delta
delta/default
delta/default/2013.08.18_09.45.16.copied
delta/default/2013.08.18_09.45.16.linked
delta/default/2013.08.18_09.49.21.copied
delta/default/2013.08.18_09.49.21.linked
delta/default/2013.08.18_10.05.54
delta/default/2013.08.18_10.05.54.copied
delta/default/2013.08.18_10.05.54/.md5CheckSums.bz2
delta/default/2013.08.18_10.05.54/.md5CheckSums.info
delta/default/2013.08.18_10.05.54/.storeBackupLinks
delta/default/2013.08.18_10.05.54/.storeBackupLinks/linkFile.bz2
delta/default/2013.08.18_10.05.54/.storeBackupLinks/linkTo
delta/deltaCache.conf
delta/processedBackups
delta/processedBackups/default
delta/processedBackups/default/2013.08.18_09.45.16
delta/processedBackups/default/2013.08.18_09.45.16/ls.bz2
delta/processedBackups/default/2013.08.18_09.45.16/.md5CheckSums.bz2
delta/processedBackups/default/2013.08.18_09.45.16/.md5CheckSums.info
delta/processedBackups/default/2013.08.18_09.45.16/.storeBackupLinks
delta/processedBackups/default/2013.08.18_09.45.16/.storeBackupLinks/linkFile.bz2
delta/processedBackups/default/2013.08.18_09.49.21
delta/processedBackups/default/2013.08.18_09.49.21/.md5CheckSums.bz2
delta/processedBackups/default/2013.08.18_09.49.21/.md5CheckSums.info
delta/processedBackups/default/2013.08.18_09.49.21/pwd.bz2
delta/processedBackups/default/2013.08.18_09.49.21/.storeBackupLinks
delta/processedBackups/default/2013.08.18_09.49.21/.storeBackupLinks/linkFile.bz2
delta/processedBackups/default/2013.08.18_09.49.21/.storeBackupLinks/linkTo
repl
repl/default
repl/default/2013.08.18_09.45.16
repl/default/2013.08.18_09.45.16/ls.bz2
repl/default/2013.08.18_09.45.16/.md5CheckSums.bz2
repl/default/2013.08.18_09.45.16/.md5CheckSums.info
repl/default/2013.08.18_09.45.16/.storeBackupLinks
repl/default/2013.08.18_10.05.54
repl/default/2013.08.18_10.05.54/.md5CheckSums.bz2
repl/default/2013.08.18_10.05.54/.md5CheckSums.info
repl/default/2013.08.18_10.05.54/.storeBackupLinks
repl/default/2013.08.18_10.05.54/.storeBackupLinks/linkFile.bz2
repl/default/2013.08.18_10.05.54/.storeBackupLinks/linkTo
repl/storeBackupBaseTree.conf

Wir stellen fest:

  1. In repl
    1. Das Backup repl/default/2013.08.18_09.45.16 wurde kopiert und vervollständigt.
      (.storeBackupLinks/linkFile.bz2 existiert nicht mehr)
    2. Das Backup repl/default/2013.08.18_10.05.54 wurde kopiert, aber nicht vervollständigt.
      (.storeBackupLinks/linkFile.bz2 existiert noch)
  2. In delta/default
    1. Das erste Backup 2013.08.18_09.45.16 ist als kopiert und verlinkt markiert - was passt, siehe 1a oben.
    2. Das zweite Backup, 2013.08.18_09.49.21 ist als kopiert sowie verlinkt markiert - das ist falsch, weil es in repl fehlt. (Ich hatte es gelöscht, um ein Problem zu simulieren.)
    3. Das dritte Backup 2013.08.18_10.05.54 ist als kopiert, aber nicht verlinkt gekennzeichnet, was richtig ist, siehe 1b oben.
Um das Problem zu lösen, könnte ich alle Backups vollständig von backup nach repl kopieren. Aber in einem realen Einsatz wäre die sehr zeitaufwändig und könnte eventuell zu Datenverlust aufgrund von unterschiedlichen Löschszenarien führen.

Ein anderer Weg, das Problem zu lösen, ist die Verwendung von linkToDirs.pl, um das fehlende Backup von backup direkt an den korrekten Platz in repl zu kopieren. Siehe Kapitel linkToDirs.pl für nähere Informationen.

Der „eleganteste`` und schnellste Weg ist, den Delta-Cache auf die Situation in repl anzupassen:

  1. Das fehlende Backup (siehe 2b oben) ist als „kopiert``und „linked``gekennzeichnet, daher lösche ich diese Markierungsdateien. Siehe hierzu das erste Kommando unten.
    ACHTUNG: Das funktioniert nur, weil in diesem Beispiel nur eine Replikation konfiguriert ist. Wenn mehrere Replikationen konfiguriert sind, muss der Name der betreffenden Replikation aus den Dateien gelöscht werden. Wenn Du lediglich die Dateien löscht, werden sehr wahrscheinlich andere Replikationen betroffen sein!
  2. Aber das Backup (welches in repl fehlt) ist nicht an seinem Platz in delta/default. Glücklicherweise ist es noch in delta/processedBackups/default verfügbar. Ich schiebe es mit dem zweiten Kommando unten an die richtige Stelle.
Zum Schluss zeigt die Ausgabe von find, dass alle Dateien an den gewünschten Stellen sind:

$ rm delta/default/2013.08.18_09.49.21.copied delta/default/2013.08.18_09.49.21.linked
$ mv delta/processedBackups/default/2013.08.18_09.49.21 delta/default
$ find delta -print | sort
delta
delta/default
delta/default/2013.08.18_09.45.16.copied
delta/default/2013.08.18_09.45.16.linked
delta/default/2013.08.18_09.49.21
delta/default/2013.08.18_09.49.21/.md5CheckSums.bz2
delta/default/2013.08.18_09.49.21/.md5CheckSums.info
delta/default/2013.08.18_09.49.21/pwd.bz2
delta/default/2013.08.18_09.49.21/.storeBackupLinks
delta/default/2013.08.18_09.49.21/.storeBackupLinks/linkFile.bz2
delta/default/2013.08.18_09.49.21/.storeBackupLinks/linkTo
delta/default/2013.08.18_10.05.54
delta/default/2013.08.18_10.05.54.copied
delta/default/2013.08.18_10.05.54/.md5CheckSums.bz2
delta/default/2013.08.18_10.05.54/.md5CheckSums.info
delta/default/2013.08.18_10.05.54/.storeBackupLinks
delta/default/2013.08.18_10.05.54/.storeBackupLinks/linkFile.bz2
delta/default/2013.08.18_10.05.54/.storeBackupLinks/linkTo
delta/deltaCache.conf
delta/processedBackups
delta/processedBackups/default
delta/processedBackups/default/2013.08.18_09.45.16
delta/processedBackups/default/2013.08.18_09.45.16/ls.bz2
delta/processedBackups/default/2013.08.18_09.45.16/.md5CheckSums.bz2
delta/processedBackups/default/2013.08.18_09.45.16/.md5CheckSums.info
delta/processedBackups/default/2013.08.18_09.45.16/.storeBackupLinks
delta/processedBackups/default/2013.08.18_09.45.16/.storeBackupLinks/linkFile.bz2

Ein Lauf von storeBackupUpdateBackup.pl auf repl ergibt folgende Ausgaben:

$ storeBackupUpdateBackup.pl -b repl
BEGIN     2013.08.18 10:39:08  7958 checking references and backup copying in <repl>
VERSION   2013.08.18 10:39:08  7958 storeBackupUpdateBackup.pl, 3.4 +
INFO      2013.08.18 10:39:08  7958 removing old lock file of process <7050>
INFO      2013.08.18 10:39:08  7958 creating lock file </tmp/storeBackup.lock>
INFO      2013.08.18 10:39:08  7958 reading <repl/storeBackupBaseTree.conf>
INFO      2013.08.18 10:39:08  7958 reading </tmp/x/delta/deltaCache.conf>
INFO      2013.08.18 10:39:08  7958 copying </tmp/x/delta/default/2013.08.18_09.49.21> to <repl/default>
INFO      2013.08.18 10:39:08  7958 scanning directory <repl> for existing backups
INFO      2013.08.18 10:39:08  7958 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 10:39:08  7958 found 1 backup series, 3 backups, 0 renamed backups
INFO      2013.08.18 10:39:08  7958     1 directory </tmp/x/repl/default/2013.08.18_09.45.16> has no linkFrom entry
INFO      2013.08.18 10:39:08  7958 autorepair: wrote linkFrom from </tmp/x/repl/default/2013.08.18_09.45.16> to
                                    </tmp/x/repl/default/2013.08.18_09.49.21>
INFO      2013.08.18 10:39:08  7958 
INFO      2013.08.18 10:39:08  7958 ----- repeating consistency check -----
INFO      2013.08.18 10:39:08  7958 scanning directory <repl> for existing backups
INFO      2013.08.18 10:39:08  7958 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 10:39:08  7958 found 1 backup series, 3 backups, 0 renamed backups
INFO      2013.08.18 10:39:08  7958     1 directory </tmp/x/repl/default/2013.08.18_09.49.21> has no linkFrom entry
INFO      2013.08.18 10:39:08  7958 autorepair: wrote linkFrom from </tmp/x/repl/default/2013.08.18_09.49.21> to
                                    </tmp/x/repl/default/2013.08.18_10.05.54>
INFO      2013.08.18 10:39:08  7958 
INFO      2013.08.18 10:39:08  7958 ----- repeating consistency check -----
INFO      2013.08.18 10:39:08  7958 scanning directory <repl> for existing backups
INFO      2013.08.18 10:39:08  7958 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 10:39:08  7958 found 1 backup series, 3 backups, 0 renamed backups
INFO      2013.08.18 10:39:08  7958 consistency check finished successfully
INFO      2013.08.18 10:39:08  7958 listing references:
INFO      2013.08.18 10:39:08  7958   /tmp/x/repl/default/2013.08.18_09.49.21
INFO      2013.08.18 10:39:08  7958     -> /tmp/x/repl/default/2013.08.18_09.45.16
INFO      2013.08.18 10:39:08  7958   /tmp/x/repl/default/2013.08.18_10.05.54
INFO      2013.08.18 10:39:08  7958     -> /tmp/x/repl/default/2013.08.18_09.49.21
INFO      2013.08.18 10:39:08  7958 (1/2) updating </tmp/x/repl/default/2013.08.18_09.49.21>
INFO      2013.08.18 10:39:08  7958 phase 1: mkdir, symlink and compressing files
STATISTIC 2013.08.18 10:39:08  7958 created 0 directories
STATISTIC 2013.08.18 10:39:08  7958 created 0 symbolic links
STATISTIC 2013.08.18 10:39:08  7958 compressed 0 files
STATISTIC 2013.08.18 10:39:08  7958 used 0.0  instead of 0.0  (0 <- 0 ; 0.0%)
INFO      2013.08.18 10:39:08  7958 phase 2: setting hard links
STATISTIC 2013.08.18 10:39:08  7958 linked 1 files
INFO      2013.08.18 10:39:08  7958 phase 3: setting file permissions
STATISTIC 2013.08.18 10:39:08  7958 set permissions for 2 files
INFO      2013.08.18 10:39:08  7958 phase 4: setting directory permissions
STATISTIC 2013.08.18 10:39:08  7958 set permissions for 0 directories
INFO      2013.08.18 10:39:08  7958 reading <repl/storeBackupBaseTree.conf>
INFO      2013.08.18 10:39:08  7958 marked <default/2013.08.18_09.49.21> as linked in </tmp/x/delta>
INFO      2013.08.18 10:39:08  7958 scanning directory <repl> for existing backups
INFO      2013.08.18 10:39:08  7958 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 10:39:08  7958 found 1 backup series, 3 backups, 0 renamed backups
INFO      2013.08.18 10:39:08  7958 consistency check finished successfully
INFO      2013.08.18 10:39:08  7958 listing references:
INFO      2013.08.18 10:39:08  7958   /tmp/x/repl/default/2013.08.18_10.05.54
INFO      2013.08.18 10:39:08  7958     -> /tmp/x/repl/default/2013.08.18_09.49.21
INFO      2013.08.18 10:39:08  7958 (2/2) updating </tmp/x/repl/default/2013.08.18_10.05.54>
INFO      2013.08.18 10:39:08  7958 phase 1: mkdir, symlink and compressing files
STATISTIC 2013.08.18 10:39:08  7958 created 0 directories
STATISTIC 2013.08.18 10:39:08  7958 created 0 symbolic links
STATISTIC 2013.08.18 10:39:08  7958 compressed 0 files
STATISTIC 2013.08.18 10:39:08  7958 used 0.0  instead of 0.0  (0 <- 0 ; 0.0%)
INFO      2013.08.18 10:39:08  7958 phase 2: setting hard links
STATISTIC 2013.08.18 10:39:08  7958 linked 2 files
INFO      2013.08.18 10:39:08  7958 phase 3: setting file permissions
STATISTIC 2013.08.18 10:39:08  7958 set permissions for 2 files
INFO      2013.08.18 10:39:08  7958 phase 4: setting directory permissions
STATISTIC 2013.08.18 10:39:08  7958 set permissions for 0 directories
INFO      2013.08.18 10:39:08  7958 reading <repl/storeBackupBaseTree.conf>
INFO      2013.08.18 10:39:08  7958 marked <default/2013.08.18_10.05.54> as linked in </tmp/x/delta>
INFO      2013.08.18 10:39:08  7958 scanning directory <repl> for existing backups
INFO      2013.08.18 10:39:08  7958 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 10:39:08  7958 found 1 backup series, 3 backups, 0 renamed backups
INFO      2013.08.18 10:39:08  7958 consistency check finished successfully
INFO      2013.08.18 10:39:08  7958 found no references to backups from lateLinks that need storeBackupUpdateBackup run
INFO      2013.08.18 10:39:08  7958 backup </tmp/x/delta/default/2013.08.18_09.49.21> copied to <Backup Copy>
INFO      2013.08.18 10:39:08  7958     moving backup to </tmp/x/delta/processedBackups/default>
INFO      2013.08.18 10:39:08  7958 backup </tmp/x/delta/default/2013.08.18_10.05.54> copied to <Backup Copy>
INFO      2013.08.18 10:39:08  7958     moving backup to </tmp/x/delta/processedBackups/default>
INFO      2013.08.18 10:39:08  7958 deleting in deltaCache </tmp/x/delta> processedBackups
INFO      2013.08.18 10:39:08  7958     age for deletion is > 99d (delete backups older than Sat 2013.05.11 10:39:08)
INFO      2013.08.18 10:39:08  7958 checking series <default>
INFO      2013.08.18 10:39:08  7958     default -> 2013.08.18_09.45.16 - not old enough to delete
INFO      2013.08.18 10:39:08  7958     default -> 2013.08.18_09.49.21 - not old enough to delete
INFO      2013.08.18 10:39:08  7958     default -> 2013.08.18_10.05.54 - not old enough to delete
STATISTIC 2013.08.18 10:39:08  7958                       duration = 1s
STATISTIC 2013.08.18 10:39:08  7958  [sec] |      user|    system
STATISTIC 2013.08.18 10:39:08  7958 -------+----------+----------
STATISTIC 2013.08.18 10:39:08  7958 process|      0.12|      0.01
STATISTIC 2013.08.18 10:39:08  7958 childs |      0.04|      0.00
STATISTIC 2013.08.18 10:39:08  7958 -------+----------+----------
STATISTIC 2013.08.18 10:39:08  7958 sum    |      0.16|      0.01 => 0.17
INFO      2013.08.18 10:39:08  7958 syncing ...
END       2013.08.18 10:39:08  7958 checking references and copying in <repl>

Folgendes passierte:

Zum Schluss überprüfe ich mit storeBackupCheckBackup.pl, ob die Replikation korrekt verlief:

$ storeBackupCheckBackup.pl -c repl
BEGIN     2013.08.18 10:42:50  8042 checking backups in </tmp/x/repl>
VERSION   2013.08.18 10:42:50  8042 storeBackupCheckBackup.pl, 3.4 +
INFO      2013.08.18 10:42:50  8042 scanning directory <repl> for existing backups
INFO      2013.08.18 10:42:50  8042 scanning directory <repl/default> for existing backups
STATISTIC 2013.08.18 10:42:50  8042 found 1 backup series, 3 backups, 0 renamed backups
INFO      2013.08.18 10:42:50  8042 consistency check finished successfully
INFO      2013.08.18 10:42:50  8042 found no references to backups from lateLinks that need storeBackupUpdateBackup run
INFO      2013.08.18 10:42:50  8042 backup directories to check
INFO      2013.08.18 10:42:50  8042   /tmp/x/repl/default/2013.08.18_09.45.16
INFO      2013.08.18 10:42:50  8042   /tmp/x/repl/default/2013.08.18_09.49.21
INFO      2013.08.18 10:42:50  8042   /tmp/x/repl/default/2013.08.18_10.05.54
INFO      2013.08.18 10:42:50  8042 -- checking </tmp/x/repl/default/2013.08.18_09.45.16> ...
INFO      2013.08.18 10:42:50  8042 -- checking </tmp/x/repl/default/2013.08.18_09.49.21> ...
INFO      2013.08.18 10:42:50  8042 -- checking </tmp/x/repl/default/2013.08.18_10.05.54> ...
INFO      2013.08.18 10:42:50  8042 -- no WARNINGS OCCURRED DURING THE CHECK! --
INFO      2013.08.18 10:42:50  8042 -- no ERRORS OCCURRED DURING THE CHECK! --
END       2013.08.18 10:42:50  8042 checking backups in </tmp/x/repl>


next up previous contents
Nächste Seite: Verwendung von storeBackup (Beispiele) Aufwärts: Interna Vorherige Seite: Late Links Backups   Inhalt
Heinz-Josef Claes 2014-04-20