9.2 Maintenance de la zone de stockage des données ZENworks dans PostgreSQL

Les sections suivantes fournissent des instructions pour la sauvegarde et la restauration de la zone de stockage des données PostgreSQL :

9.2.1 Affichage du mot de passe pour la base de données PostgreSQL par défaut

Le mot de passe de la base de données ZENworks PostgreSQL par défaut est stocké en texte brut sur votre serveur ZENworks primaire. Vous pouvez accéder à la base de données sans mot de passe si vous êtes logué en tant qu'utilisateur Root.

Si vous avez besoin du mot de passe à des fins de maintenance, vous pouvez utiliser la commande suivante pour l'afficher (vous devez être logué en tant qu'utilisateur Root) :

cat /etc/opt/novell/zenworks/serversecret

9.2.2 Présentation de la maintenance de la base de données automatisée

Si vous utilisez une base de données PostgreSQL, certaines tâches de maintenance automatisées s'effectuent une fois par jour et une fois par mois.

Maintenance quotidienne : une fois par jour, les versions anciennes sont marquées afin de récupérer l'espace utilisé par ces enregistrements pour les nouvelles données ; les statistiques utilisées par le moteur de requête sont mises à jour pour obtenir les meilleures performances possibles. Cette maintenance s'effectue chaque jour à 02h15.

Maintenance mensuelle : contrairement à la maintenance quotidienne, la maintenance mensuelle libère de l'espace utilisé par les anciens enregistrements marqués ; ceci évite une grande disparité entre l'espace disque alloué à la base de données et l'espace réellement utilisé par la base de données. Du fait qu'il s'agit d'un processus intensif, il est planifié chaque mois et non chaque jour. Il est exécuté le premier jour de chaque mois à 03h15.

9.2.3 Sauvegarde de la zone de stockage des données ZENworks

Cette section s'applique uniquement si vous utilisez la base de données PostgreSQL pour stocker vos données.

Vous pouvez utiliser zlm_dbbackup.sh pour effectuer une sauvegarde dans la zone de stockage des données. Cet utilitaire de sauvegarde se trouve dans /opt/novell/zenworks/sbin.

  1. Vérifiez que vous êtes logué à un serveur ZENworks en tant qu'utilisateur root.

  2. À l'invite, entrez la commande suivante sur le serveur ZENworks primaire qui contient la zone de stockage des données locales :

    zlm_dbbackup.sh

    À l'invite, entrez la commande suivante pour effectuer une sauvegarde de la base données à partir du serveur ZENworks secondaire :

    zlm_dbbackup.sh -H nom_hôte_serveur_primaire ou adresseIP_serveur_primaire

REMARQUE :l'opération de sauvegarde de la base de données est prise en charge par un serveur secondaire seulement si sa version de la base de données PostgreSQL est identique ou supérieure à celle du serveur primaire. Par exemple, vous ne pouvez pas exécuter l'utilitaire de sauvegarde à partir d'un serveur secondaire SLES 9 si le serveur primaire est un serveur SLES 10. En effet, l'utilitaire pg_dump du serveur SLES 9, qui est utilisé par l'utilitaire de sauvegarde, n'est pas compatible avec la version de la base de données PostSQL qui fonctionne sur le serveur primaire. Vous devez exécuter l'utilitaire de sauvegarde sur le serveur primaire.

Un répertoire de la même date est créé dans /var/opt/novell/zenworks/backup/db. Le fichier de sauvegarde, tampon_horaire-zenworks-backup.tar.gz, est enregistré dans ce répertoire. Par exemple, si la sauvegarde est effectuée le 23 août 2005 à 23 h 30, le répertoire et le fichier suivants sont créés :

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

Les informations de consignation concernant l'opération de sauvegarde sont enregistrées dans le fichier /var/opt/novell/log/zenworks/dbbackup.log.

Cet utilitaire ne nécessite aucune intervention de l'utilisateur. Si nécessaire, vous pouvez planifier la sauvegarde automatique de la base de données en tant que tâche cron.

9.2.4 Restauration de la zone de stockage des données ZENworks

Cette section s'applique uniquement si vous utilisez la base de données PostgreSQL pour stocker vos données.

En cas de besoin, vous pouvez restaurer la zone de stockage des données ZENworks à partir d'une sauvegarde que vous avez créée. Vous pouvez utiliser zlm_dbrestore.sh, situé dans /opt/novell/zenworks/sbin, pour restaurer la zone de stockage des données après une sauvegarde.

L'opération de restauration abandonne la base de donnée existante et en crée une nouvelle.

Pour restaurer la zone de stockage des données ZENworks :

  1. Quel que soit le serveur ZENworks, arrêtez le serveur ZENworks (novell-zenserver) et les services de chargement ZENworks (novell-zenloader) à l'aide des commandes suivantes :

    /etc/init.d/novell-zenserver stop

    /etc/init.d/novell-zenloader stop

    Ces services doivent être arrêtés sur tous les serveurs ZENworks de votre système. En effet, tous les serveurs ZENworks accèdent à la zone de stockage des données. Vous devez également vérifier que toutes les connexions externes à la base de données sont arrêtées.

  2. Vérifiez que vous êtes logué à un serveur ZENworks en tant qu'utilisateur root.

  3. À l'invite, saisissez la commande suivante sur le serveur ZENworks primaire :

    zlm_dbrestore.sh -F chemin_fichier_sauvegarde

    À l'invite, entrez la commande suivante pour restaurer une base de données à partir d'un serveur secondaire :

    zlm_dbrestore.sh -F chemin_fichier_sauvegarde -H nom_hôte_serveur_primaire

    Si vous utilisez une sauvegarde de la base de données du serveur secondaire, vous ne pouvez restaurer celle-ci à partir de ce serveur que si la version de sa base de données PostgreSQL est identique à celle du serveur primaire.

    Assurez-vous que l'option -F comporte le chemin d'accès complet au fichier de sauvegarde. Par exemple :

    zlm_dbrestore.sh -F /var/opt/novell/zenworks/backup/db/2005-08-23/23:30:00-zenworks-backup.tar.gz
    
  4. Si vous y êtes invité, saisissez Y pour arrêter le serveur ZENworks (novell-zenserver).

  5. Si vous y êtes invité, saisissez Y pour arrêter le service de chargement ZENworks (novell-zenloader).

  6. Lorsque la planification vous invite à fournir le mot de passe destiné à ignorer la base de données, saisissez celui qui est configuré dans /etc/opt/novell/zenworks/hibernate.cfg.xml et servant à l'authentification de la base de données PostgreSQL.

  7. Lorsque la planification vous invite à fournir le mot de passe destiné à créer la base de données, saisissez celui qui est configuré dans /etc/opt/novell/zenworks/hibernate.cfg.xml et servant à l'authentification de la base de données PostgreSQL.

    Les informations de consignation concernant l'opération de restauration sont enregistrées dans le fichier /var/opt/novell/log/zenworks/dbrestore.log.

  8. Une fois la restauration achevée, vérifiez que la zone de stockage des données est synchronisée avec la zone de stockage des objets. Pour connaître les instructions, reportez-vous à la Section 9.4, Synchronisation des zones de stockage des objets et des données.

  9. Sur tous les serveurs ZENworks, démarrez le serveur ZENworks (novell-zenserver) et le service de chargement ZENworks (novell-zenloader) à l'aide des commandes suivantes :

    /etc/init.d/novell-zenserver start

    /etc/init.d/novell-zenloader start

9.2.5 Optimisation de la base de données du serveur

Pour améliorer les performances de la base de données du serveur, utilisez l'exemple de script zlm-pgsql-vacuum qui se trouve dans le répertoire /opt/novell/zenworks/bin du serveur ZENworks. Lorsque vous installez un serveur ZENworks primaire à l'aide d'une base de données PostgreSQL locale, le programme d''installation crée un script qui s'exécute quotidiennement.

Le script zlm-pgsql-vacuum exécute la commande vacuumdb, laquelle a un impact significatif sur les performances de la base de données. Vous devez vous loguer en tant qu'utilisateur root avant d'exécuter le script zlm-pgsql-vacuum. Pour optimiser les performances, exécutez les scripts de vidage suivants :

  • zlm-pg-vacuum ou zlm-pg-vacuum --busy-tables : en fonction de l'activité de la base de données, exécutez le script chaque jour ou chaque semaine. Exécutez ce script une fois par semaine sur un serveur peu chargé et une fois par jour sur un serveur fortement chargé.

  • zlm-pg-vacuum --full : exécutez le script à une période d'activité moindre ou alors que le serveur de base de données n'est pas en service. En fonction de l'activité de la base de données, exécutez le script une à deux fois par semaines. Il effectue une analyse par vidage complet et verrouille les tables de façon exclusive. Il est recommandé de lancer manuellement le script zlm-pg-vacuum --full une fois par mois en effectuant les opérations suivantes :

    • 1.Arrêtez tous les services ZENworks en exécutant zlm-config --stop
    • 2. Exécutez zlm-pg-vacuum --full.
    • 3. Démarrez tous les services ZENworks en exécutant zlm-config --start.

Vous pouvez en outre affiner les paramètres suivants, en fonction de vos besoins en mémoire et de votre échelle :

  • Dans le fichier /etc/sysctl.conf, configurez kernel.shmmax.

  • Dans le fichier postgresql.com, configurez shared_buffer, sort_mem, vacuum_mem, wal_buffers et checkpoint_segments.

Pour plus d'informations sur le réglage précis des paramètres, reportez-vous à la documentation PostgreSQL.

Voici un exemple de scénario qui explique comment définir de façon plus précise les paramètres de la base de données. Les valeurs indiquées dans ce scénario sont des exemples. Utilisez vos propres paramètres. Pour plus d'informations sur le réglage précis des paramètres, reportez-vous à la documentation PostgreSQL.

Exemple de scénario : dans ce scénario, on suppose que le serveur ZENworks s'exécute sur une machine IBM x346 avec deux processeurs Xeon et 4 Go de RAM. La base de données s'exécute sur le même serveur. 2 Go de RAM sont dédiées aux autres processus ZENworks, 1 Go de RAM au système d'exploitation et aux processus non-ZENworks, et le reste à PostgreSQL.

Pour optimiser les performances de base de données du serveur :

  1. Dans le fichier /etc/sysctl.conf, configurez la valeur de kernel.shmmax à 1572864000 afin que le processus bénéficie de 1,5 Go de mémoire partagée.

    Le paramètre de kernel shmmax autorise PostgreSQL à consommer plus de mémoire partagée. Par défaut, le kernel autorise un processus à consommer 32 Mo de mémoire partagée seulement.

    REMARQUE :cette étape ne s'applique pas si ZENworks 7.3 Linux Management est exécuté sur un périphérique SLES 10 car la valeur par défaut de kernel.shmmax est de 4 Go.

  2. Configurez les paramètres suivants du fichier postgresql.com :

    • shared_buffers = 131072

    • sort_mem = 10240 

    • vacuum_mem = 102400

    • wal_buffers = 20

    • checkpoint_segments = 20

  3. Redémarrez le serveur pour que les modifications soient prises en compte.

9.2.6 Redémarrage des services de serveur Novell Zenworks après le redémarrage de la base de données

Après avoir redémarré la base de données PostgresSQL sur le serveur ZENworks Linux Management, les connexions à la base de données sont restaurées en 15 minutes environ. Au cours de cette période, le Centre de contrôle ZENworks et l'utilitaire zlman peuvent afficher des erreurs de connexion à la base de données.

Pour restaurer les connexions immédiatement, redémarrez les services novell zenworks en exécutant la commande suivante :

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