]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/de/old/catalog/postgresql.tex
Reset everything to English
[bacula/docs] / docs / manuals / de / old / catalog / postgresql.tex
diff --git a/docs/manuals/de/old/catalog/postgresql.tex b/docs/manuals/de/old/catalog/postgresql.tex
new file mode 100644 (file)
index 0000000..b5ac678
--- /dev/null
@@ -0,0 +1,459 @@
+%%
+%%
+
+\chapter{PostgreSQL Installation und Konfiguration}
+\label{PostgreSqlChapter}
+\index[general]{PostgreSQL!Installation und Konfiguration }
+\index[general]{PostgreSQL Installation und Konfiguration }
+\index[general]{Update}
+
+Wenn Sie sich dazu entschlie{\ss}en PostgreSQL zu verwenden,
+sollten Sie sich \"{u}ber den Aufwand, den ein Datenbank-Update
+mit sich bringt, im Klaren sein. Grunds\"{a}tzlich werden Sie bei
+jeder neuen Hauptversion von PostgreSQL Ihre alte Datenbank
+exportieren m\"{u}ssen, um sie dann in die neue Version einzupflegen.
+Das wird dadurch erforderlich, dass sich regelm\"{a}{\ss}ig 
+einige internen "`Datenformate"' \"{a}ndern und von den
+PostgreSQL-Entwicklern keine Tools zu Verf\"{u}gung gestellt
+werden, um den Update-Vorgang zu automatisieren. Falls Sie den
+Daten-Ex- und -Import vergessen sollten, kann es sein das Sie
+auf die Datenbank nicht mehr zugreifen k\"{o}nnen, da die neue
+PostgreSQL-Version nicht mit den alten Datenbank-Dateien
+zusammenarbeitet.
+
+Sollten Sie PostgreSQL aus dem Quelltext selbst
+kompilieren, m\"{u}ssen Sie dem configure-Kommando die
+Option {\bf \verb:--:enable-thread-safety} \"{u}bergeben.
+
+\section{PostgreSQL Installation}
+\index[general]{PostgreSQL!Installation }
+Wenn Sie bei der Konfiguration des Bacula-Quelltextes {\bf ./configure
+\verb:--:with-postgresql=PostgreSQL-Verzeichnis} angeben, m\"{u}ssen Sie
+PostgreSQL mindestens in Version 7.4 installiert haben. \"{A}ltere
+PostgreSQL-Versionen funktionieren mit Bacula nicht. Falls PostgreSQL
+in einem Standard-Verzeichnis installiert ist, brauchen Sie das
+"`PostgreSQL-Verzeichnis"' nicht angeben. Wenn es aber zum Beispiel in
+Ihrem Home-Verzeichnis installiert ist, m\"{u}ssen Sie den kompletten
+Pfad angeben.
+
+Die Konfiguration und Installation von PostgreSQL ist zwar nicht sehr
+schwer, kann aber beim ersten Mal etwas verwirrend sein. Wenn Sie es vorziehen,
+k\"{o}nnen Sie PostgreSQL auch \"{u}ber die Paket-Verwaltung Ihres Betriebssystems
+installieren. Vorkompilierte Pakete finden Sie auf www.postgresql.org
+unter \elink{Downloads}{http://www.postgresql.org/download/}
+
+Wenn Sie PostgreSQL lieber aus dem Quelltext selbst kompilieren m\"{o}chten,
+empfehlen wir Ihnen den Anweisungen in der \elink{PostgreSQL
+Dokumentation}{http://www.postgresql.org/docs/} zu folgen.
+
+Benutzer von FreeBSD finden in diesem \elink{FreeBSD Diary
+Artikel}{http://www.freebsddiary.org/postgresql.php} weitere n\"{u}tzliche
+Informationen. Selbstverst\"{a}ndlich enth\"{a}lt der Artikel auch f\"{u}r
+Nicht-FreeBSD-Benutzer wissenswertes bez\"{u}glich der Installation und
+Konfiguration von PostgreSQL
+
+Falls Sie die Bacula "`Batch-Insert"'-Funktion benutzen wollen, die
+standardm\"{a}{\ss}ig aktiviert ist und f\"{u}r eine schnelle Verarbeitung
+der Attribute der gesicherten Datein sorgt, m\"{u}ssen Sie unbedingt darauf
+achten, dass PostgreSQL mit der Option {\bf \verb:--:enable-thread-safety}
+kompiliert wurde. Bei den meisten gro{\ss}en Linux-Distributionen ist das
+der Fall. Aber falls Sie nicht sichert sind k\"{o}nnen Sie mit folgendem
+Kommando feststellen, ob Ihr PostgreSQL gegen die pthreads-Bibliothek
+gelinked ist:
+
+\footnotesize
+\begin{alltt}
+  nm /usr/lib/libpq.a | grep pthread_mutex_lock
+\end{alltt}
+\normalsize
+
+Die Kommandos m\"{u}ssen in etwa eine Zeile wie diese zur\"{u}ckgeben:
+
+\footnotesize
+\begin{alltt}
+         U pthread_mutex_lock
+\end{alltt}
+\normalsize
+
+wenn das der Fall ist, ist alles in Ordnung. Wenn keine Zeilen zur\"{u}ckgegeben
+werden, wird Bacula beim kompilieren die "`Batch-Insert"`-Funktion deaktivieren.
+Wenn Sie sie trotzdem benutzen wollen, m\"{u}ssen Sie PostgreSQL mit der Option
+\verb:--:enable-thread-safety neu kompilieren.
+
+Nach der PostgreSQL-Installation fahren Sie bitte mit der Installation von Bacula
+fort. Sp\"{a}ter wenn Sie diese abgeschlossen haben, lesen Sie hier weiter, um
+die Konfiguration von PostgreSQL zu beenden. Bitte beachten Sie, dass einige
+Schritte im weiteren Verlauf der PostgreSQL-Konfiguration Scripte ben\"{o}tigen,
+die erst bei der Installation von Bacula erstellt werden. Auch wenn Sie f\"{u}r
+die Installation von PostgreSQL vorkompilierte Pakete verwendet haben (zum
+Beispiel rpm oder deb) m\"{u}ssen Sie sp\"{a}ter hier weitermachen, um die
+Konfiguration von PostgreSQL zu vervollst\"{a}ndigen.
+
+Bitte beachten Sie, dass Sie das Installationsverzeichnis von PostgreSQL,
+das Sie mit der Option {\bf \verb:--:with-postgresql=PostgreSQL-Verzeichnis}
+dem configure-Script \"{u}bergeben haben, auch bei der Konfiguration des
+Bacula-Quelltextes mit {\bf \verb:--:with-postgresql=PostgreSQL-Verzeichnis}
+angeben m\"{u}ssen. Die einzige Ausnahme ist, dass Sie kein spezielles
+Verzeichnis angegeben haben und PostgreSQL somit in den Standard-Verzeichnissen
+installiert ist. In diesem Fall findet das configure-Script von Bacula
+die PostgreSQL Header und Bibliotheken auch ohne explizite Angabe des Verzeichnisses.
+
+\label{PostgreSQL Konfiguration}
+\section{Konfiguration PostgreSQL}
+\index[general]{PostgreSQL!Konfiguration PostgreSQL}
+
+An diesem Punkt sollten Sie PostgreSQL und Bacula
+kompiliert und installiert haben. Falls nicht,
+schlie{\ss}en Sie bitte diese beiden Schritte erst ab,
+bevor Sie hier weitermachen.
+
+Bei der Installation von Bacula werden mehrere Scripte in das
+Installations-Verzeichnis kopiert, mit denen Sie verschiedene
+\"{A}nderungen an der Datenbank durchf\"{u}hren k\"{o}nnen.
+Diese Scripte haben Namen im Format *\_bacula\_*
+(z.B. create\_bacula\_database)und dienen dazu die Datenbank
+zu initialisieren, zu aktualisieren oder zu l\"{o}schen.
+Diese Scripte sind auch im Bacula-Quelltext-Verzeichnis, nach
+der Ausf\"{u}hrung des "`./configure"'-Scripts, unter
+\lt{}bacula-src\gt{}/src/cats zu finden. Wenn Sie sich, zum
+Beispiel, das Script create\_bacula\_database n\"{a}her ansehen
+werden Sie merken, dass dieses Script einfach nur
+create\_postgresql\_database ausf\"{u}hrt. Alle Scripte die *\_bacula\_*
+heissen, dienen nur der Bequemlichkeit. Es spielt keine Rolle
+mit welcher Datenbank Sie den Bacula-Quelltext \"{u}bersetzt haben,
+das Script create\_bacula\_database wird immer die f\"{u}r Sie
+richtige Datenbank erstellen.
+
+Die folgenden Schritte sind n\"{o}tig um die PostgreSQL-Datenbank und Tabellen
+zu erstellen, die Bacula benutzt:
+
+\begin{enumerate}
+\item cd \lt{}Bacula-Installations-Verzeichnis\gt{}
+
+   In diesem Verzeichnis  finden Sie die Bacula-Datenbank-Scripte.
+
+\item ./create\_bacula\_database
+
+   Dieses Script erzeugt die Bacula-Katalog-Datenbank.
+   Bevor Sie dieses Script ausf\"{u}hren, sollten Sie sich \"{u}ber
+   die verwendete Kodierung der Text-Felder (Pfade, Dateien, ...)
+   innerhalb der Datenbank Gedanken machen. Idealerweise wird UTF8 verwendet.
+   Allerdings sind bei vielen Unix-Systeme die Dateinamen nicht in UTF8 kodiert,
+   weil eventuell UTF8 auf diesen Systemen nicht als Standard-Kodierung gesetzt ist,
+   oder weil Dateien von anderen Systemen (z.B. MacOS X) kopiert worden sind.
+   Aus diesem Grund verwendet Bacula SQL\_ASCII als Datenbank-Kodierung.
+   Wenn Sie das \"{a}ndern wollen, m\"{u}ssen Sie das Script vor der
+   Ausf\"{u}hrung entsprechend anpassen. Bedenken Sie dabei aber, dass
+   sp\"{a}tere Backups eventuell fehlschlagen, falls Bacula Dateien und
+   Verzeichnisse sichern soll, deren Namen nicht UTF8-kodiert sind.
+
+   Wenn die Ausf\"{u}hrung dieses Scripts fehlschl\"{a}gt kann es sein,
+   dass die Datenbank einem anderen Benutzer geh\"{o}rt als der, mit dem
+   Sie gerade angemeldet sind. Auf vielen Systemen ist der Datenbank-
+   Besitzer {\bf pgsql} oder, auf Fedora und RedHat {\bf postgres}.
+   Am leichtesten finden Sie den Namen des Besitzers in der /etc/passwd.
+   Um einen neuen Datenbank-Benutzer anzulegen, k\"{o}nnen Sie folgende
+   Kommandos ausf\"{u}hren:
+
+\begin{alltt}
+   su
+   (Eingabe des root-Passworts)
+   su pgsql (oder postgres)
+   createuser IhrLogin (oder beispielsweise bacula)
+   Shall the new user be allowed to create databases? (y/n) y
+   Shall the new user be allowed to create more new users? (y/n) n
+   exit
+\end{alltt}
+
+    Jetzt sollten Sie in der Lage sein das Script ./create\_bacula\_database
+    auszuf\"{u}hren.
+
+\item ./make\_bacula\_tables
+
+   Diese Script erstellt die von Bacula ben\"{o}tigten Tabellen.
+\item ./grant\_bacula\_privileges
+
+   Dieses Script erstellt den Datenbank-Benutzer "`bacula"', der nur begrenzte
+   Datenbank-Berechtigungen erh\"{a}lt. Eventuell wollen Sie das Ihrer Situation entsprechend
+   anpassen. Bitte beachten Sie auch, dass dem Datenbank-Benutzer bacula nicht
+   automatisch ein Passwort zugewiesen wird.
+
+\end{enumerate}
+
+Jedes dieser drei Scripte (create\_bacula\_database, make\_bacula\_tables und
+grant\_bacula\_privileges) erlaubt die Verwendung von Kommandozeilen-Parametern.
+Damit k\"{o}nnen Sie den Datenbank-Benutzernamen oder auch mit "`-h Rechnername"'
+einen Server angeben, auf dem die PostgreSQL-Instanz l\"{a}uft.
+
+Um sich anzusehen, was f\"{u}r Zugriffsrechte die Scripte vergeben haben,
+k\"{o}nnen Sie diese Kommando ausf\"{u}hren:
+
+\footnotesize
+\begin{alltt}
+PostgreSQL-Verzeichnis/bin/psql --command \\dp bacula
+\end{alltt}
+\normalsize
+
+Falls Autorisationsprobleme beim Zugriff auf die Datenbank auftreten,
+kann es helfen die Datei pg\_hba.conf (normalerweise in /etc/postgresql/)
+wie folgt anzupassen:
+
+\footnotesize
+\begin{alltt}
+  local   all    all        ident  sameuser
+to
+  local   all    all        trust  sameuser
+\end{alltt}
+\normalsize
+
+Dadurch k\"{o}nnen einige Probleme behoben werden. Allerdings ist das
+aus Sicherheitsbedenken kein sehr guter Ansatz, auch wenns es hilft
+ohne Passwort auf die Datenbank zuzugreifen.
+
+Ein besserer Weg ist es auf Passworter-Autorisierung umzustellen
+und dann bei jeden Datenbank-Login das vergebene Passwort zu benutzen.
+Dazu f\"{u}gen Sie vor den existierenden "`local"' und "`host"' Eintr\"{a}gen
+einfach die folgende Zeile ein:
+
+\footnotesize
+\begin{alltt}
+  local bacula bacula md5
+\end{alltt}
+\normalsize
+
+Danach ist es notwendig die PostgreSQL-Instanz neu zu starten oder
+"`pg\_ctl reload"' auszuf\"{u}hren, damit die neue Regel aktiviert wird.
+Als n\"{a}chstes muss noch ein Passwort f\"{u}r den Datenbank-Benutzer
+bacula vergeben werden. Wechseln Sie dazu den Benutzer (z.B. mit su - postgres)
+und f\"{u}hren Sie folgende Kommandos aus:
+
+\footnotesize
+\begin{alltt}
+  \$ psql bacula
+  bacula=# alter user bacula with password 'secret';
+  ALTER USER
+  bacula=# \\q
+\end{alltt}
+\normalsize
+
+Das vergebene Passwort m\"{u}ssen Sie an den folgenden Stellen in
+der Bacula-Konfiguration verwenden: einmal im Katalog-Eintrag
+der Bacula-Director-Konfiguration und im Job-Eintrag des BackupCatalog-Jobs
+bei dem RunBeforeJob-Kommando. Mit dem Passwort m\"{u}ssen diese
+beiden Zeilen dann in etwa so aussehen:
+
+\footnotesize
+\begin{alltt}
+  dbname = bacula; user = bacula; password = "secret"
+    ... und ...
+  # WARNING!!! Passing the password via the command line is insecure.
+  # see comments in make_catalog_backup for details.
+  RunBeforeJob = "/etc/make_catalog_backup bacula bacula secret"
+\end{alltt}
+\normalsize
+
+Nat\"{u}rlich sollte ein mehr zuf\"{a}lliges Passwort gew\"{a}hlt werden
+als in diesem Beispiel. Zudem sollte die Director-Konfiguratios-Datei bacula-dir.conf
+entsprechend gesichert werden, dass nicht alle Benutzer Zugriff darauf haben,
+sondern nur der Benutzer als der der Bacula-Director l\"{a}uft.
+
+Der Datenbank-Zugriff kann auch \"{u}ber die Datei .pgpass,
+im Home-Verzeichnis des entsprechenden Benutzer der Zugriff auf
+die Datenbank ben\"{o}tigt, gel\"{o}st werden.
+Dazu muss diese Datei folgendes enthalten:
+
+\footnotesize
+\begin{alltt}
+  localhost:5432:bacula:bacula:secret
+\end{alltt}
+\normalsize
+
+Danach kann diese Datei in die Home-Verzeichnisse aller Benutzer kopiert werden
+die Datenbank-Zugriff erhalten sollen (z.B. bacula, root und den Benutzern die
+\"{u}ber die Bacula-Console Zugriff haben sollen). Die Datei muss dem Benutzer
+und seiner Gruppe geh\"{o}ren, f\"{u}r root also "`root:root"' und die
+Zugriffsrechte m\"{u}ssen auf 600 (nur der Benutzer darf sie lesen) gesetzt sein.
+
+\section{Re-Initialisierung der Katalog-Datenbank}
+\index[general]{Datenbank!Re-Initialisierung der Katalog- }
+\index[general]{Re-Initialisierung der Katalog-Datenbank }
+
+Nachdem Sie einige anf\"{a}ngliche Tests mit Bacula gemacht haben, wollen
+Sie eventuell Ihre Katalog-Datenbank komplett leeren, um alle gelaufenen
+Test-Backups aus der Datenbank zu entfernen. Um das zu erreichen,
+tun Sie folgendes:
+
+\footnotesize
+\begin{alltt}
+  cd <install-directory>
+  ./drop_bacula_tables
+  ./make_bacula_tables
+\end{alltt}
+\normalsize
+
+Bitte bedenken Sie, dass dabei alle Informationen unwiderruflich
+aus der Datenbank gel\"{o}scht werden. Falls Sie auch beschriebene
+Volumes wiederverwenden wollen, m\"{u}ssen Sie das Volume-Label
+\"{u}berschreiben damit Bacula sie erneut benutzen kann.
+Das erreichen Sie durch:
+
+\footnotesize
+\begin{alltt}
+   (stop Bacula or unmount the drive)
+   mt -f /dev/nst0 rewind
+   mt -f /dev/nst0 weof
+\end{alltt}
+\normalsize
+
+hierbei m\"{u}ssen Sie {\bf /dev/nst0} durch das Device ersetzen,
+dem Ihr Tapelaufwerk entspricht.
+
+\section{PostgreSQL RPM-Installation}
+\index[general]{PostgreSQL!RPM-Installation}
+\index[general]{PostgreSQL RPM-Installation}
+Wenn Sie lieber die PostgreSQL-RPMs Ihrer Distribution verwenden wollen,
+m\"{u}ssen Sie sowohl das PostgreSQL-RPM, als auch das PostgreSQL-Client-RPM
+installieren. Die ben\"{o}tigten Client-Bibliotheken finden Sie normalerweise im
+PostgreSQL-devel-RPM. Folgende Pakete m\"{u}ssen installiert werden:
+
+\footnotesize
+\begin{alltt}
+  postgresql
+  postgresql-devel
+  postgresql-server
+  postgresql-libs
+\end{alltt}
+\normalsize
+
+Bei dem meisten anderen Paket-Managern werden die Pakete \"{a}hnlich
+Namen haben. Nach der Installation der Pakete m\"{u}ssen Sie die oben genannten
+Bacula-Scripte zur Datenbank-Einrichtung ausf\"{u}hren.
+
+
+\section{Migration von MySQL zu PostgreSQL}
+\index[general]{PostgreSQL!Migration von MySQL zu }
+\index[general]{Migration von MySQL zu PostgreSQL }
+
+Die hier beschriebenen Schritte wurden mit folgenden Software-Versionen getestet:
+
+\begin{itemize}
+\item Linux Mandrake 10/Kernel 2.4.22-10 SMP 
+\item Mysql Ver 12.21 Distrib 4.0.15, for mandrake-linux-gnu (i586) 
+\item PostgreSQL 7.3.4 
+\item Bacula 1.34.5 
+   \end{itemize}
+
+Warnung: Sichern Sie Ihre komplette MySQL-Datenbank bevor Sie diese Schritte
+ausf\"{u}hren!
+
+\begin{enumerate}
+\item Stoppen Sie Bacula (cd /etc/bacula;./bacula stop oder /etc/init.d/bacula stop)  
+\item F\"{u}hren Sie das folgende Kommando aus, um die Daten Ihrer MySQL-Datenbank
+zu exportieren:
+
+   \footnotesize
+\begin{alltt}
+       mysqldump -f -t -n >bacula-backup.dmp
+
+\end{alltt}
+\normalsize
+
+\item Sichern Sie Ihr /etc/Bacula-Verzeichnis, \"{a}ndern Sie aber nicht das bestehende Verzeichnis
+\item F\"{u}hren Sie erneut die Konfiguration des Bacula-Quelltextes durch und w\"{a}hlen Sie dabei
+PostgreSQL anstelle von MySQL als Datenbank aus (Option --with-postgresql=PostgreSQL-Verzeichnis).
+\item Kompilieren und Installieren Sie Bacula.
+\item Stoppen Sie MySQL.
+\item Starten Sie PostgreSQL.
+\item Erstellen Sie den Datenbankbenutzer bacula mit dem weiter oben beschriebenen Kommandos.
+\item \"{U}berpr\"{u}fen Sie die Datei pg\_hba.conf daraufhin das der Benutzer bacula die entsprechenden 
+Berechtigungen f\"{u}r den Datenbankzugriff besitzt. Wenn Ihr System entsprechend gesichert ist,
+k\"{o}nnte der Eintrag so aussehen:
+
+\footnotesize
+\begin{alltt}
+local all all trust
+
+host all all 127.0.0.1 255.255.255.255 trust
+
+Hinweis: PostgreSQL muss nach Anpassungen dieser Datei neu gestartet werden.
+\end{alltt}
+\normalsize
+
+\item Wechseln Sie in das Verzeichnis /etc/bacula und Initialisieren Sie die Katalogdatenbank
+mit diesen Kommandos:
+
+\footnotesize
+\begin{alltt}
+./create_postgresql_database
+
+./make_postgresql_tables
+
+./grant_postgresql_privileges
+
+\end{alltt}
+\normalsize
+
+\item \"{U}berpr\"{u}fen Sie, ob Sie die Berechtigung zum Datanbankzugriff haben: 
+
+   \footnotesize
+\begin{alltt}
+psql -Ubacula bacula
+\end{alltt}
+\normalsize
+
+Das sollte zu keinen Fehlern f\"{u}hren.
+
+\item Importieren Sie die Daten aus Ihrer MySQL-Datenbank mit:
+
+   \footnotesize
+\begin{alltt}
+psql -Ubacula bacula <bacula-backup.dmp>
+\end{alltt}
+\normalsize
+
+\item Aktualisieren Sie die Datenbank-Tabellen mit folgenden Kommandos:
+
+   \footnotesize
+\begin{alltt}
+psql -Ubacula bacula
+
+SELECT SETVAL('basefiles_baseid_seq', (SELECT
+MAX(baseid) FROM basefiles));
+SELECT SETVAL('client_clientid_seq', (SELECT
+MAX(clientid) FROM client));
+SELECT SETVAL('file_fileid_seq', (SELECT MAX(fileid)
+FROM file));
+SELECT SETVAL('filename_filenameid_seq', (SELECT
+MAX(filenameid) FROM filename));
+
+SELECT SETVAL('fileset_filesetid_seq', (SELECT
+MAX(filesetid) FROM fileset));
+
+SELECT SETVAL('job_jobid_seq', (SELECT MAX(jobid) FROM job));
+SELECT SETVAL('jobmedia_jobmediaid_seq', (SELECT
+MAX(jobmediaid) FROM jobmedia));
+SELECT SETVAL('media_mediaid_seq', (SELECT MAX(mediaid) FROM media));
+SELECT SETVAL('path_pathid_seq', (SELECT MAX(pathid) FROM path));
+
+SELECT SETVAL('pool_poolid_seq', (SELECT MAX(poolid) FROM pool));
+
+\end{alltt}
+\normalsize
+
+\item Starten Sie Bacula und \"{u}berpr\"{u}fen Sie den Datenbestand.
+F\"{u}hren Sie einen Backup-Job aus um zu sehen, ob alles erwartungsgem\"{a}{\ss} funktioniert.
+\end{enumerate}
+
+\section{PostgreSQL updaten}
+\index[general]{PostgreSQL updaten }
+\index[general]{updaten!PostgreSQL }
+\index[general]{Updaten}
+Wenn Sie PostgreSQL aktualisieren, m\"{u}ssen Sie Bacula
+neu kompilieren und installieren, andernfalls kann es zu
+Fehlern kommen. Auch nach der Aktualisierung der PostgreSQL-RPMs
+ist es notwendig Bacula neu zu bauen. Das k\"{o}nnen Sie einfach,
+mit den entsprechenden RPM-Kommandos, \"{u}ber das Bacula-Source-RPM
+ereichen. Eventuell m\"{u}ssen Sie aber vorher die bacula.spec
+anpassen, damit es mit der neuen PostgreSQL-Version funktioniert.