]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/de/catalog/catmaintenance.tex
Tweak downloads report
[bacula/docs] / docs / manuals / de / catalog / catmaintenance.tex
index c5bf6866149283a6359ff74898a45073fdf74efc..a794417bd1f28d3d89db803481e09561ffd382f1 100644 (file)
@@ -12,14 +12,14 @@ Zudem kann der Katalog ineffizient und langsam werden. Wie schnell der Katalog w
 h\"{a}ngt von der Anzahl der Jobs und der Menge der dabei gesicherten Dateien ab.
 Durch das L\"{o}schen von Eintr\"{a}gen im Katalog kann Platz geschaffen werden f\"{u}r
 neue Eintr\"{a}ge der folgenden Jobs. Durch regelm\"{a}{\ss}iges l\"{o}schen alter abgelaufener
-Daten (\"{a}lter als durch die Aufbewahrungszeitr\"{a}ume (Retention Periods) angegeben),
-wird daf\"{u}r gesorgt, dass die Katalog-Datenbank eine konstante Gr\"{o}{\ss}e beibeh\"{a}lt.
+Daten, \"{a}lter als durch die Aufbewahrungszeitr\"{a}ume (Retention Periods) angegeben,
+wird daf\"{u}r gesorgt, dass die Katalog-Datenbank eine nahezu konstante Gr\"{o}{\ss}e beibeh\"{a}lt.
 
-Sie k\"{o}nnen mit der vorgegebenen Konfiguration beginnen, sie enth\"{a}lt bereits
-sinnvolle Vorgaben f\"{u}r eine kleine Anzahl von Clients (kleiner 5), in diesem Fall
-wird die Katalogwartung, wenn Sie einige hundert Megabyte freien Plattenplatz haben,
-nicht dringlich sein. Was aber auch immer der Fall ist, einiges Wissen \"{u}ber
-die Retention Periods/Aufbewahrungszeitr\"{a}ume der Daten im Katalog und auf den Volumes ist hilfreich.
+Sie k\"{o}nnen anfangs die vorgegebene Konfiguration benutzen, sie enth\"{a}lt bereits
+sinnvolle Vorgaben f\"{u}r eine kleine Anzahl von Clients (kleiner 5). Wenn Sie dann einige
+hundert Megabyte freien Plattenplatz haben, wird die daraus resultierende Katalog-Gr\"{o}{\ss}e
+vorerst kein Problem darstellen. Was aber auch immer der Fall ist, grundlegendes Wissen \"{u}ber
+die Retention Periods/Aufbewahrungszeitr\"{a}ume der Daten im Katalog und auf den Volumes ist notwendig.
 
 \section{Einstellung der Aufbewahrungszeitr\"{a}ume}
 \label{Retention}
@@ -35,7 +35,7 @@ wenn es darum geht, wie gro{\ss} die Datenbank werden wird.
 
 Die {\bf File Retention} und die {\bf Job Retention} werden in der Client-Konfiguration,
 wie unten gezeigt, angegeben. Die {\bf Volume Retention} wird in der Pool-Konfiguration
-angegeben, genauere Informationen dazu finden Sie im n\"{a}chsten Kapitel dieses Handbuchs.
+angegeben, genauere Informationen dazu finden Sie im Handbuch "`Bacula Installation und Konfiguration"'.
 
 \begin{description}
 
@@ -52,10 +52,10 @@ des Director-Dienstes benutzt um alte Katalog-Eintr\"{a}ge zu l\"{o}schen.
 
 Da die Datei-Eintr\"{a}ge ca. 80 Prozent der Katalog-Datenbankgr\"{o}{\ss}e ausmachen,
 sollten Sie sorgf\"{a}lltig ermitteln \"{u}ber welchen Zeitraum Sie die Eintr\"{a}ge aufbewahren wollen.
-Nachdem die Datei-Eintr\"{a}ge  gel\"{o}scht wurden, ist es nicht mehr m\"{o}glich einzelne dieser Dateien
-mit einem R\"{u}cksicherungs-Job wiederherzustellen, aber die Bacula-Versionen 1.37 und sp\"{a}ter
-sind in der Lage, aufgrund des Job-Eintrags im Katalog, alle Dateien des Jobs zur\"{u}ckzusichern
-solange der Job-Eintrag im Katalog vorhanden ist.
+Nachdem die Datei-Eintr\"{a}ge gel\"{o}scht wurden, ist es nicht mehr m\"{o}glich einzelne dieser Dateien
+wiederherzustellen. Die Bacula-Versionen 1.37 und sp\"{a}ter sind allerdings in der Lage, aufgrund des
+Job-Eintrags im Katalog, alle Dateien des Jobs zur\"{u}ckzusichern, solange der Job-Eintrag
+im Katalog vorhanden ist.
 
 Aufbewahrungszeitr\"{a}ume werden in Sekunden angegeben, aber der Einfachheit halber sind auch
 eine Reihe von Hilfsangaben m\"{o}glich, so dass man Minuten, Stunden, Tage, Wochen,
@@ -109,7 +109,7 @@ Normalerweise kennen gro{\ss}e kommerzielle Datenbanken, wie Oracle, bestimmte K
 um den verschwendeten Festplattenplatz wieder freizugeben. MySQL hat das {\bf OPTIMIZE TABLE}
 Kommando und bei SQLite (Version 2.8.4 und gr\"{o}{\ss}er) k\"{o}nnen Sie das {\bf VACUUM}
 Kommando zu diesem Zweck benutzen. Wir \"{u}berlassen es Ihnen, die N\"{u}tzlichkeit von
-{\bf OPTIMIZE TABLE} oder {\bf VACUUM} zu ermitteln.
+{\bf OPTIMIZE TABLE} oder {\bf VACUUM} zu beurteilen.
 
 Alle Datenbanken haben Hilfsmittel, um die enthaltenen Daten im ASCII-Format in eine Datei zu schreiben
 und diese Datei dann auch wieder einzulesen. Wenn man das tut, wird die Datenbank erneut erzeugt, was ein
@@ -120,11 +120,11 @@ Bei einer {\bf MySQL} Datenbank k\"{o}nnen Sie den Inhalt der Katalog-Datenbank
 in eine ASCII-Datei (bacula.sql) schreiben und neu in die Datenbank importieren:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysqldump -f --opt bacula > bacula.sql
 mysql bacula < bacula.sql
 rm -f bacula.sql
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 Abh\"{a}ngig von der Gr\"{o}{\ss}e Ihrer Datenbank, wird dies mehr oder weniger Zeit und auch Festplattenplatz
@@ -132,15 +132,15 @@ ben\"{o}tigen. Zum Beispiel, wenn ich in das Verzeichnis wechsle, wo meine MySQL
 /var/lib/mysql) und dieses Kommando ausf\"{u}hre:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 du bacula
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 bekomme ich die Ausgabe {\bf 620,644}, was bedeutet dass das Verzeichnis bacula 620.644 Bl\"{o}cke
 von 1024 Bytes auf der Festplatte belegt, meine Datenbank enth\"{a}lt also ca. 635 MB an Daten.
 Nachdem ich das {\bf mysqldump} ausgef\"{u}hrt habe, ist die dabei entstandene Datei bacula.sql
-{\bf 174.356} Bl\"{o}cke gro{\ss}, wenn diese Datei mit dem Kommando {\bf mysql bacula < bacula.sql}
+{\bf 174.356} Bl\"{o}cke gro{\ss}, wenn diese Datei mit dem Kommando {\bf mysql bacula \lt{} bacula.sql}
 wieder in die Datenbank importiert wird, ergibt sich eine Datenbankgr\"{o}{\ss}e von nur noch {\bf 210.464}
 Bl\"{o}cken. Mit anderen Worten, die komprimierte Version meiner Datenbank, die seit ca. 1 Jahr
 in Benutzung ist, ist ungef\"{a}hr nur noch ein Drittel so gro{\ss} wie vorher.
@@ -177,39 +177,39 @@ einer Partition die Datenbankprobleme mit {\bf myisamchk -r} nicht behoben werde
 
 kopieren Sie folgende Zeilen in ein Shell-Script names {\bf repair}:
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 #!/bin/sh
 for i in *.MYD ; do
-  mv $i x${i}
-  t=`echo $i | cut -f 1 -d '.' -`
+  mv \$i x\$\{i\}
+  t=`echo \$i | cut -f 1 -d '.' -`
   mysql bacula <<END_OF_DATA
 set autocommit=1;
-truncate table $t;
+truncate table \$t;
 quit
 END_OF_DATA
-  cp x${i} ${i}
-  chown mysql:mysql ${i}
-  myisamchk -r ${t}
+  cp x\$\{i\} \$\{i\}
+  chown mysql:mysql \$\{i\}
+  myisamchk -r \$\{t\}
 done
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 dieses Shell-Script, wird dann wie folgt aufgerufen:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 cd /var/lib/mysql/bacula
 ./repair
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 nachdem sichergestellt ist, dass die Datenbank wieder korrekt funktioniert,
 kann man die alten Datenbank-Dateien l\"{o}schen:
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 cd /var/lib/mysql/bacula
 rm -f x*.MYD
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 \section{MySQL-Tabelle ist voll}
@@ -225,29 +225,29 @@ Hinweise zu der maximal m\"{o}glichen Tabellengr\"{o}{\ss}e gibt es auf
 Sie k\"{o}nnen sich die maximale Tabellengr\"{o}{\ss}e mit:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysql bacula
 SHOW TABLE STATUS FROM bacula like "File";
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 anzeigen lassen. Wenn die Spalte {\bf max\_data\_length} ca. 4 GB entspricht,
 dann ist dass das Problem. Sie k\"{o}nnen die maximale Gr\"{o}{\ss}e aber mit:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysql bacula
 ALTER TABLE File MAX_ROWS=281474976710656;
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 anpassen. Alternativ k\"{o}nnen Sie auch die /etc/my.cnf editieren, bevor Sie die Bacula-Tabellen erstellen,
 setzen Sie im Abschnitt [mysqld]:
 
 \footnotesize                                 
-\begin{verbatim}
+\begin{alltt}
 set-variable = myisam_data_pointer_size=6
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 
@@ -334,21 +334,21 @@ Wenn einer dieser Indexe fehlt, verliert Ihre Datenbank enorm an Performance.
 Bei PostgreSQL k\"{o}nnen Sie mit dem folgenden Kommandos \"{u}berpr\"{u}fen ob Sie alle Indexe haben:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 psql bacula
 select * from pg_indexes where tablename='file';
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 Wenn Sie keine Ausgaben sehen die anzeigen das alle drei Indexe vorhanden sind,
 k\"{o}nnen Sie die beiden zus\"{a}tzlichen Indexe mit:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 psql bacula
 CREATE INDEX file_jobid_idx on file (jobid);
 CREATE INDEX file_fp_idx on file (filenameid, pathid);
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 anlegen.
@@ -357,21 +357,21 @@ anlegen.
 Bei MySQL k\"{o}nnen Sie die Indexe mit:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysql bacula
 show index from File;
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 \"{u}berpr\"{u}fen.
 Wenn Indexe fehlen, besonders der {\bf JobId}-Index, kann er mit:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysql bacula
 CREATE INDEX file_jobid_idx on File (JobId);
 CREATE INDEX file_jpf_idx on File (JobId, FilenameId, PathId);
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 erzeugt werden.
@@ -381,11 +381,11 @@ beide auf 255 Zeichen gesetzt sind. Einige Benutzer berichten von Problemen mit
 Um das zu kontrollieren, f\"{u}hren Sie:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysql bacula
 show index from Filename;
 show index from Path;
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 aus.
@@ -395,14 +395,14 @@ Wenn einer der Indexe nicht existiert oder der Sub\_part kleiner 255 ist, k\"{o}
 die folgende Kommandos benutzen:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysql bacula
 DROP INDEX Path on Path;
 CREATE INDEX Path on Path (Path(255);
 
 DROP INDEX Name on Filename;
 CREATE INDEX Name on Filename (Name(255));
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 
@@ -410,20 +410,20 @@ CREATE INDEX Name on Filename (Name(255));
 Bei SQLite k\"{o}nnen Sie so die Indexe \"{u}berpr\"{u}fen:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 sqlite <path>bacula.db
 select * from sqlite_master where type='index' and tbl_name='File';
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 Falls ein Index fehlt, im besonderen der {\bf JobId}-Index, k\"{o}nnen Sie ihn mit den folgenden Befehlen erstellen:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 mysql bacula
 CREATE INDEX file_jobid_idx on File (JobId);
 CREATE INDEX file_jfp_idx on File (JobId, FilenameId, PathId);
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 
@@ -446,14 +446,14 @@ Bei einer PostgreSQL-Datenbank lassen Sie die Daten in eine ASCII-Datei schreibe
 wenn Sie diese Kommandos ausf\"{u}hren:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 pg_dump -c bacula > bacula.sql
 cat bacula.sql | psql bacula
 rm -f bacula.sql
-\end{verbatim}
+\end{alltt}
 \normalsize
 
-Abh\"{a}gig von Ihrer Datenabnkgr\"{o}{\ss}e wird dieser Vorgang mehr oder
+Abh\"{a}gig von Ihrer Datenbankgr\"{o}{\ss}e wird dieser Vorgang mehr oder
 weniger Zeit und Festplattenplatz in Anspruch nehmen. Sie sollten vorher
 in das Arbeitsverzeichnis Ihrer Datenbank wechseln (typischerweise
 /var/lib/postgres/data) und die Gr\"{o}{\ss}e \"{u}berpr\"{u}fen.
@@ -477,40 +477,44 @@ Lesen Sie bitte zuerst die vorherigen Abschnitte die erkl\"{a}ren, warum es erfo
 SQLite-Versionen gr\"{o}{\ss}er 2.8.4 haben das {\bf Vacuum}-Kommando um die Datenbank zu komprimieren:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 cd {\bf working-directory}
 echo 'vacuum;' | sqlite bacula.db
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 Als Alternative k\"{o}nnen Sie auch die folgenden Kommandos (auf Ihr System angepasst) benutzen:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 cd {\bf working-directory}
 echo '.dump' | sqlite bacula.db > bacula.sql
 rm -f bacula.db
 sqlite bacula.db < bacula.sql
 rm -f bacula.sql
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 Wobei {\bf working-directory} das Verzeichnis ist, dass Sie in Ihrer Director-Dienst-Konfiguration angegeben haben.
 Beachten Sie bitte, dass es im Fall von SQLite erforderlich ist, die alte Datenbank komplett zu l\"{o}schen,
 bevor die komprimierte Version angelegt werden kann.
 
-\section{Migration von SQLite zu MySQL}
+\section{Migration von SQLite zu MySQL/PostgreSQL}
 \index[general]{MySQL!Migration von SQLite zu }
-\index[general]{Migration von SQLite zu MySQL }
+\index[general]{PostgreSQL!Migration von SQLite zu }
+\index[general]{Migration von SQLite zu MySQL/PostgreSQL }
 
 Wenn Sie Bacula anfangs mit SQLite zusammen benutzt haben, gibt es sp\"{a}ter
-eine Reihe von Gr\"{u}nden, weshalb Sie eventuell auf MySQL umsteigen wollen:
+eine Reihe von Gr\"{u}nden, weshalb Sie eventuell auf MySQL oder PostgreSQL
+umsteigen wollen:
 SQLite belegt mehr Festplattenplatz f\"{u}r dieselbe Datenmenge als MySQL;
 falls die Datenbank besch\"{a}digt wird, ist es mit SQLite problematischer als
 bei MySQL oder PostgreSQL, sie wiederherzustellen. Viele Benutzer sind erfolgreich
-von SQLite auf MySQL umgestiegen, indem sie zuerst die Daten exportiert haben und sie dann
-mit einem z.B. Perl-Script in ein passendes Format konvertiert haben, um sie in die
-MySQL-Datenbank zu importieren. Dies ist aber kein sehr einfacher Vorgang.
+von SQLite auf MySQL oder PostgreSQL umgestiegen, indem sie zuerst die Daten
+exportiert haben und sie dann mit einem Perl-Script in ein passendes Format
+konvertiert haben, um sie in die neue Datenbank zu importieren.
+Dies ist aber kein ganz einfacher Vorgang. Beispiel-Scripte dazu finden Sie
+im Bacula-Quelltext unter {\bf examples/database}.
 
 \label{BackingUpBacula}
 \section{Sichern Ihrer Bacula Datenbank}
@@ -549,39 +553,39 @@ Angenommen Sie starten alle Ihre Backup-Jobs nachts um 01:05, k\"{o}nnen Sie das
 mit der folgenden zus\"{a}tzlichen Director-Dienst-Konfiguration ausf\"{u}hren lassen:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt} 
 # Catalog-Datenbank-Backup (nach der n\"{a}chtlichen Sicherung)
-Job {
-  Name = "BackupCatalog"
+Job \{
+  Name = BackupCatalog
   Type = Backup
   Client=rufus-fd
-  FileSet="Catalog"
-  Schedule = "WeeklyCycleAfterBackup"
+  FileSet=Catalog
+  Schedule = WeeklyCycleAfterBackup
   Storage = DLTDrive
   Messages = Standard
   Pool = Default
   # Achtung!!! Das Passwort auf der Kommandozeile zu \"{u}bergeben ist nicht sicher.
   # Lesen Sie bitte die Kommentare in der Datei make_catalog_backup.
-  RunBeforeJob = "/home/kern/bacula/bin/make_catalog_backup"
-  RunAfterJob  = "/home/kern/bacula/bin/delete_catalog_backup"
-  Write Bootstrap = "/home/kern/bacula/working/BackupCatalog.bsr"
-}
+  RunBeforeJob = "/home/bacula/bin/make_catalog_backup"
+  RunAfterJob  = "/home/bacula/bin/delete_catalog_backup"
+  Write Bootstrap = "/home/bacula/working/BackupCatalog.bsr"
+\}
 # Diese Schedule starten das Catalog-Backup nach den anderen Sicherungen
-Schedule {
-  Name = "WeeklyCycleAfterBackup
+Schedule \{
+  Name = WeeklyCycleAfterBackup
   Run = Level=Full sun-sat at 1:10
-}
+\}
 # Das FileSet f\"{u}r die ASCII-Kopie der Datenbank
-FileSet {
-  Name = "Catalog"
-  Include {
-    Options {
+FileSet \{
+  Name = Catalog
+  Include \{
+    Options \{
       signature=MD5
-    }
-    File = \lt{}working_directory\gt{}/bacula.sql
-  }
-}
-\end{verbatim}
+    \}
+    File = "<working_directory>/bacula.sql"
+  \}
+\}
+\end{alltt}
 \normalsize
 
 Stellen Sie sicher, dass, wie in dem Beispiel, eine Bootstrap-Datei geschrieben wird.
@@ -630,7 +634,6 @@ weiter. Auf \elink{ Free Backup and Recovery Software}{http://www.backupcentral.
 finden Sie Links zu Scripts die zeigen, wie man die meisten gr\"{o}{\ss}eren Datenbanken sichern kann.
 
 \label{Size}
-
 \section{Datenbank Gr\"{o}{\ss}e}
 \index[general]{Gr\"{o}{\ss}e!Datenbank }
 \index[general]{Datenbank Gr\"{o}{\ss}e }
@@ -650,21 +653,21 @@ gesichert werden. Die ungef\"{a}hre Gr\"{o}{\ss}e Ihrer Datenbank nach einem Mon
 kann dann so berechnet werden:
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
    Gr\"{o}{\ss}e = 154 * Anzahl Computer * (100.000 * 4 + 10.000 * 26)
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 wenn ein Monat mit 4 Wochen angenommen wird, werden also 26 inkrementelle Backups im Monat laufen.
 Das ergibt das folgende:
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
    Gr\"{o}{\ss}e = 154 * 2 * (100.000 * 4 + 10.000 * 26)
 or
    Gr\"{o}{\ss}e = 308 * (400.000 + 260.000)
 or
    Gr\"{o}{\ss}e = 203.280.000 Bytes
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 f\"{u}r die beiden oben angenommen Computer k\"{o}nnen wir also davon ausgehen, dass die Datenbank
@@ -690,7 +693,7 @@ Eine kurze Berechnung zeigt, dass die Datenbank mit jeder gesicherten Datei unge
 154 Bytes w\"{a}chst.
 
 \footnotesize
-\begin{verbatim}
+\begin{alltt}
 Gr\"{o}{\ss}e
   in Bytes   Eintr\"{a}ge   Dateiname 
  ============  =========  ===========
@@ -714,7 +717,7 @@ Gr\"{o}{\ss}e
         3,072             Pool.MYI
             5          1  Version.MYD
         1,024             Version.MYI
-\end{verbatim}
+\end{alltt}
 \normalsize
 
 Die Datenbank hat eine Gr\"{o}{\ss}e von ca. 450 Megabytes..