9.2 Warten des ZENworks-Datenspeichers in PostgreSQL

In folgenden Abschnitten finden Sie Anweisungen zum Sichern und Wiederherstellen des PostgreSQL-Datenspeichers:

9.2.1 Anzeigen des Passworts für die PostgreSQL-Standarddatenbank

Das Passwort für die ZENworks PostgreSQL-Standarddatenbank ist als Text in Ihrem ZENworks-Primärserver gespeichert. Sie haben Zugriff auf die Datenbank auch ohne Passwort, wenn Sie als Root angemeldet sind.

Wenn Sie das Passwort zu Wartungszwecken benötigen, können Sie den folgenden Befehl verwenden, um Ihr Passwort anzuzeigen (Sie müssen dazu als Root angemeldet sein).

cat /etc/opt/novell/zenworks/serversecret

9.2.2 Erläuterungen zur automatischen Datenbankwartung

Einige Wartungsaufgaben werden bei PostgreSQL-Datenbanken automatisch täglich oder monatlich ausgeführt.

Tägliche Wartung: Alte Versionen werden täglich gekennzeichnet. Der durch diese Datensätze freigewordene Speicher kann später für neue Daten verwendet werden. Ebenso wird die von der Abfrage-Engine verwendete Statistik aktualisiert, um die Leistung zu optimieren. Diese Wartungsaufgaben werden täglich um 2:15 Uhr ausgeführt.

Monatliche Wartung: Bei der monatlichen Wartung werden alte Versionen nicht nur gekennzeichnet, sondern der Speicherplatz der als solches gekennzeichneten Datensätze wird tatsächlich freigegeben. Dies verhindert große Abweichungen zwischen dem der Datenbank zugewiesenen Speicherplatz und dem tatsächlich von der Datenbank belegten Speicherplatz. Da dieser Vorgang mehr Zeit in Anspruch nimmt, wird er nur einmal pro Monat, Es wird jeweils am Monatsersten um 3:15 Uhr ausgeführt.

9.2.3 Sichern des ZENworks-Datenspeichers

Dieser Abschnitt ist nur relevant, wenn Sie eine PostgreSQL-Datenbank als Datenspeicher verwenden.

Mithilfe von zlm_dbbackup.sh kann eine Sicherungskopie des Datenspeichers erstellt werden. Dieses Sicherungsprogramm befindet sich in /opt/novell/zenworks/sbin.

  1. Stellen Sie sicher, dass Sie als root bei einem ZENworks-Server angemeldet sind.

  2. Geben Sie auf dem ZENworks-Primärserver mit dem lokalen Datenspeicher an der Eingabeaufforderung folgendes Kommando ein:

    zlm/dbbackup.sh

    Zur Erstellung einer Datenbanksicherung vom ZENworks-Sekundärserver geben Sie an der Eingabeaufforderung folgendes Kommando ein:

    zlm_dbbackup.sh -H Primärserver_Hostname oder Primärserver_IP_Adresse

HINWEIS:Eine Datenbanksicherung vom Sekundärserver wird nur unterstützt, wenn die Version seiner PostgreSQL-Datenbank gleich oder höher der Version auf dem Primärserver ist. Auf einem Sekundärserver mit SLES 9 kann das Sicherungsprogramm zum Beispiel nicht ausgeführt werden, wenn der Primärserver bereits SLES 10 aufweist. Der Grund hierfür ist, dass das Dienstprogramm pg_dump des SLES 9-Servers, das vom Sicherungsprogramm verwendet wird, nicht mit der auf dem Primärserver ausgeführten PostgreSQL-Datenbankversion kompatibel ist. Sie müssen das Sicherungsprogramm daher auf dem Primärserver starten.

Daraufhin wird ein Verzeichnis mit dem aktuellen Datum in /var/opt/novell/zenworks/backup/db erstellt. Die Sicherungsdatei, die den Namen zeitstempel-zenworks-backup.tar.gz trägt, wird in diesem Verzeichnis gespeichert. Bei einer Sicherung am 23. August 2005 um 23:30 Uhr würden zum Beispiel folgendes Verzeichnis und folgende Datei erstellt:

/var/opt/novell/zenworks/backup/db/2005-08-23/23:30:00-zenworks-backup.tar.gz

Die Protokollinformationen zum Sicherungsvorgang werden in /var/opt/novell/log/zenworks/dbbackup.log gespeichert.

Bei diesem Dienstprogramm ist keinerlei Interaktion des Benutzers erforderlich. Wenn Sie möchten, kann die Datenbanksicherung als Cron-Job festgelegt werden.

9.2.4 Wiederherstellen des ZENworks-Datenspeichers

Dieser Abschnitt ist nur relevant, wenn Sie eine PostgreSQL-Datenbank als Datenspeicher verwenden.

Im Bedarfsfall kann der ZENworks-Datenspeicher anhand einer von Ihnen erstellten Sicherungskopie wiederhergestellt werden. Zum Wiederherstellen des Datenspeichers aus einer Sicherung verwenden Sie die Datei zlm/dbrestore.sh aus dem Verzeichnis /opt/novell/zenworks/sbin.

Beim Wiederherstellungsvorgang wird die bestehende Datenbank verworfen und eine neue erstellt.

So stellen Sie den ZENworks-Datenspeicher wieder her:

  1. Stoppen Sie auf allen ZENworks-Servern die ZENworks Server-Services (novell-zenserver) und die ZENworks Loader-Services (novell-zenloader) mithilfe der folgenden Kommandos:

    /etc/init.d/novell-zenserver stop

    /etc/init.d/novell-zenloader stop

    Da alle ZENworks Server-Services auf den Datenspeicher zugreifen, müssen diese Services auf allen ZENworks-Servern Ihres Systems gestoppt werden. Zudem müssen Sie sicherstellen, dass alle externen Verbindungen mit der Datenbank beendet sind.

  2. Stellen Sie sicher, dass Sie als root bei einem ZENworks-Server angemeldet sind.

  3. Geben Sie auf dem ZENworks-Primärserver folgendes Kommando an der Eingabeaufforderung ein:

    zlm_dbrestore.sh -F path_to_the_backup_file

    Zur Wiederherstellung einer Datenbank von einem Sekundärserver geben Sie an der Eingabeaufforderung folgendes Kommando ein:

    zlm_dbrestore.sh -F Pfad_zur_Sicherungsdatei -H Primärserver_Hostname

    Wenn Sie eine Datenbanksicherung vom Sekundärserver erstellt haben, können Sie die Datenbank nur dann vom Sekundärserver wiederherstellen, wenn die Version seiner PostgreSQL-Datenbank mit der Version auf dem Primärserver identisch ist.

    Vergewissern Sie sich, dass die Option -F den vollständigen Pfad der Sicherungsdatei enthält. Beispiel:

    zlm_dbrestore.sh -F /var/opt/novell/zenworks/backup/db/2005-08-23/23:30:00-zenworks-backup.tar.gz
    
  4. Wenn Sie dazu aufgefordert werden, geben Sie Y ein, um den ZENworks Server-Service (novell-zenserver) zu stoppen.

  5. Wenn Sie dazu aufgefordert werden, geben Sie Y ein, um den ZENworks Loader-Service (novell-zenloader) zu stoppen.

  6. Wenn Sie aufgefordert werden, ein Passwort zum Verwerfen der Datenbank einzugeben, geben Sie das Passwort ein, das in/etc/opt/novell/zenworks/hibernate.cfg.xml konfiguriert wurde und zur Authentifizierung der PostgreSQL-Datenbank benutzt wird.

  7. Wenn Sie aufgefordert werden, ein Passwort zum Erstellen der neuen Datenbank einzugeben, geben Sie das Passwort ein, das in /etc/opt/novell/zenworks/hibernate.cfg.xml konfiguriert wurde und zur Authentifizierung der PostgreSQL-Datenbank benutzt wird.

    Die Protokollinformationen zum Wiederherstellungsvorgang werden in /var/opt/novell/log/zenworks/dbrestore.log gespeichert.

  8. Nach Abschluss der Wiederherstellung muss sichergestellt werden, dass Datenspeicher und Objektspeicher synchron sind. Eine Anleitung dazu finden Sie in Abschnitt 9.4, Synchronisieren von Objektspeicher und Datenspeicher.

  9. Starten Sie auf allen ZENworks-Servern den ZENworks Server-Service (novell-zenserver) und den ZENworks Loader-Service (novell-zenloader) mithilfe dieser Kommandos:

    /etc/init.d/novell-zenserver start

    /etc/init.d/novell-zenloader start

9.2.5 Optimieren der Serverdatenbank

Zur Optimierung der Leistung verwenden Sie das Beispielskript zlm-pg-vacuum aus dem Verzeichnis /opt/novell/zenworks/bin auf dem ZENworks-Server. Bei der Installation eines ZENworks-Primärservers mit einer lokalen PostgreSQL-Datenbank wird ein Skript erstellt, das automatisch einmal pro Tag ausgeführt wird.

Das Skript zlm-pg-vacuum führt das Kommando vacuumdb aus. Durch dieses Kommando steigert sich die Leistung der Datenbank erheblich. Zur Ausführung des Skripts zlm-pg-vacuum müssen Sie als Root angemeldet sein. Um die bestmögliche Leistung zu erzielen, führen Sie die folgenden Vakuum-Skripten aus:

  • zlm-pg-vacuum oder zlm-pg-vacuum --busy-tables: Je nach Datenbankaktivität führen Sie das Skript täglich oder wöchentlich aus. Führen Sie das Skript auf einem wenig belasteten Server einmal pro Woche und auf einem stark belasteten Server einmal pro Tag aus.

  • zlm-pg-vacuum --full: Führen Sie das Skript in Phasen mit weniger Aktivitäten oder bei Ausfallzeiten des Datenbankservers aus. Führen Sie das Skript je nach Datenbankaktivität wöchentlich oder zweiwöchentlich aus. Es führt eine vollständige Vakuumanalyse durch und sperrt ausschließlich die Tabellen. Es wird empfohlen, dass Sie das Skript zlm-pg-vacuum --full einmal pro Monat anhand der folgenden Schritte ausführen:

    • 1. Stoppen Sie alle ZENworks-Services, indem Sie zlm-config --stop ausführen.
    • 2. Führen Sie zlm-pg-vacuum --full aus.
    • 3. Starten Sie alle ZENworks-Services, indem Sie zlm-config --start ausführen.

Sie können außerdem die folgenden Parameter genauer einstellen, je nach Anforderungen Ihres Arbeitsspeichers und Skala:

  • Konfigurieren Sie kernel.shmmax in Datei /etc/sysctl.conf.

  • In der Datei postgresql.conf konfigurieren Sie shared_buffer, sort_mem, vacuum_mem, wal_buffers und checkpoint_segments.

Weitere Informationen zur genaueren Einstellung der Parameter erhalten Sie unter PostgreSQL-Dokumentation.

Im folgenden einfachen Szenario wird dargestellt, wie Sie die Datenbank-Parameter genauer einstellen können. Die in diesem Szenario angegebenen Werte sind Beispielwerte. Sie müssen Sie entsprechend Ihrer Anforderungen genauer einstellen. Weitere Informationen zur genaueren Einstellung der Parameter erhalten Sie in der Dokumentation zu PostgreSQL..

Ein Beispielszenario: In diesem Szenario wird vorausgesetzt, dass der ZENworks-Server auf einem IBM x346-Computer mit zwei Xeon-Prozessoren und 4 GB RAM läuft. Die Datenbank befindet sich auf dem selben Server. 2 GB RAM sind für die anderen ZENworks-Prozesse bestimmt, 1 GB RAM für das Betriebssystem und nicht-ZENworks-Prozesse und der verbleibende Speicherplatz von 1 GB RAM für PostgreSQL.

Zur Optimierung der Serverdatenbankleistung gehen Sie wie folgt vor:

  1. In Datei /etc/sysctl.conf stellen Sie den Wert von kernel.shmmax auf 1572864000 ein, damit für den Prozess ein freigegebener Arbeitsspeicher von 1,5 GB zur Verfügung steht.

    Mithilfe des Parameters shemmax kernel kann PostgreSQL auf mehr freigegebene Speicherkapazität zugreifen. Standardmäßig ermöglicht der Kernel dem Prozess einen Zugriff auf den freigebenen Arbeitsspeicher von nur 32 MB.

    HINWEIS:Dieser Schritt trifft nicht zu, wenn ZENworks 7.3 Linux Management auf SLES 10-Geräten ausgeführt wird, da der Wert von kernel.shmmax auf SLES 10 standardmäßig 4 GB lautet.

  2. In der Datei postgresql.conf konfigurieren Sie die folgenden Parameter:

    • shared_buffers = 131072

    • sort_mem = 10240

    • vacuum_mem = 102400

    • wal_buffers = 20

    • checkpoint_segments = 20

  3. Starten Sie den Computer neu, damit die Änderungen wirksam werden.

9.2.6 Neustarten der Novell ZENworks-Server-Services nach einem Neustart der Datenbank

Nach einem Neustart der PostgresSQL-Datenbank auf dem ZENworks Linux Management Server dauert es etwa 15 Minuten, bis die Datenbankverbindungen wiederhergestellt sind. Unter Umständen werden während dieses Zeitraums vom ZENworks-Kontrollzentrum und vom Dienstprogramm zlman Datenbankverbindungsfehler gemeldet.

Wenn Sie die Verbindungen sofort wiederherstellen möchten, starten Sie die Novell ZENworks-Services mit folgendem Befehl:

/opt/novell/zenworks/bin/zlm-config --restart