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, und zwar 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 Sicherungsdienstprogramm befindet sich in /opt/novell/zenworks/sbin.

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

  2. Geben Sie an der Eingabeaufforderung Folgendes ein:

    zlm/dbbackup.sh

HINWEIS:Sie können das Sicherungs-Dienstprogramm nicht auf einem SLES 9-Sekundärserver starten, wenn der Primärserver ein SLES 10-Server ist, weil das Dienstprogramm „pg_dump“ des SLES 9-Servers, das vom Sicherungs-Dienstprogramm verwendet wird, nicht kompatibel mit der Version der PostgreSQL-Datenbank ist, die auf dem Primärserver läuft. Sie müssen das Sicherungs-Dienstprogramm 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 den ZENworks Server-Service (novell-zenserver) und den ZENworks Loader-Service (novell-zenloader) mithilfe dieser Befehle:

    /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.

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

  3. Geben Sie an der Eingabeaufforderung Folgendes ein:

    zlm_dbrestore.sh -F path_to_the_backup_file

    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.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 gilt nicht, wenn ZENworks 7.2 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