9.2 Mantenimiento del almacén de datos de ZENworks en PostgreSQL

Las siguientes secciones proporcionan instrucciones para realizar copias de seguridad del almacén de datos de PostgreSQL y restaurarlas:

9.2.1 Visualización de la contraseña de la base de datos de PostgreSQL por defecto

La contraseña de la base de datos de PostgreSQL de ZENworks por defecto se almacena como texto normal en el servidor primario de ZENworks. Se puede acceder a la base de datos sin proporcionar la contraseña si se ha entrado en el sistema como usuario Root.

Si necesita la contraseña para fines de mantenimiento, puede utilizar el siguiente comando para verla (debe haber entrado en el sistema como usuario Root):

cat /etc/opt/novell/zenworks/serversecret

9.2.2 Descripción del mantenimiento automatizado de la base de datos

Si está usando una base de datos PostgreSQL, hay algunas tareas de mantenimiento automatizadas que se deben realizar de forma diaria y mensual.

Mantenimiento diario: una vez al día se marcan las versiones antiguas, lo que permite que el espacio usado por estos registros se use para los nuevos datos; las estadísticas usadas por el motor que consultas se actualizan para conseguir el mejor rendimiento posible. Esta tarea de mantenimiento se produce todos los días a las 2:15 de la madrugada.

Mantenimiento mensual: a diferencia del mantenimiento diario, el mensual libera realmente el espacio usado por los registros marcados como antiguos; esto impide que haya una gran diferencia entre el espacio de disco asignado para la base de datos y el tamaño real que emplea dicha base. Dado que se trata de un proceso intensivo, está programado para efectuarse una vez al mes en lugar de cada día. Se ejecuta a las 3:15 de la madrugada del primer día de cada mes.

9.2.3 Copia de seguridad del almacén de datos de ZENworks

Esta sección sólo se aplica si se utiliza la base de datos de PostgreSQL para el almacén de datos.

Puede usar zlm_dbbackup.sh para hacer una copia de seguridad del almacén de datos. Esta utilidad de copia de seguridad se encuentra en /opt/novell/zenworks/sbin.

  1. Asegúrese de entrar en el servidor de ZENworks como usuario Root.

  2. En el servidor primario de ZENworks con el almacén de datos local, escriba lo siguiente en la línea de comandos:

    zlm_dbbackup.sh

    Para realizar una copia de seguridad de la base de datos desde el servidor secundario de ZENworks, escriba lo siguiente en la línea de comandos:

    zlm_dbbackup.sh -H nombre_host_de_servidor_primario o dirección_IP_de_servidor_primario

NOTA:la operación de copia de seguridad de la base de datos sólo se admite desde un servidor secundario si la versión de la base de datos PostgreSQL es la misma o superior que la del servidor primario. Por ejemplo, no es posible ejecutar la utilidad de copia de seguridad desde un servidor secundario SLES 9 si el servidor primario es SLES 10. Esto se debe a que la utilidad pg_dump del servidor SLES 9, que utiliza la utilidad de copia de seguridad, no es compatible con la versión de la base de datos PostgreSQL que se ejecuta en el servidor primario. La utilidad de copia de seguridad debe ejecutarse en el servidor primario.

Se crea un directorio con la fecha de ese momento en /var/opt/novell/zenworks/backup/db. El archivo de copia de seguridad, que recibe el nombre marca_horaria-zenworks-backup.tar.gz, se guarda en ese directorio. Por ejemplo, si la copia de seguridad se realiza el 23 de agosto de 2005 a las 23:30, se crea el siguiente directorio y el siguiente archivo:

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

La información de registro acerca de la operación de copia de seguridad se guarda en el archivo /var/opt/novell/log/zenworks/dbbackup.log.

La utilidad no precisa ninguna acción por parte del usuario. Si lo desea, puede programar la operación de copia de seguridad de la base de datos como un trabajo cron.

9.2.4 Restauración del almacén de datos de ZENworks

Esta sección sólo se aplica si se utiliza la base de datos de PostgreSQL para el almacén de datos.

Si es preciso, se puede restaurar el almacén de datos de ZENworks desde una copia de seguridad que se haya creado. Para restaurar un almacén de datos desde una copia de seguridad, se usa zlm_dbrestore.sh, que se encuentra en /opt/novell/zenworks/sbin.

En la operación de restauración se elimina la base de datos existente y se crea una nueva.

Para restaurar el almacén de datos de ZENworks:

  1. En todos los servidores de ZENworks, detenga los servicios del servidor de ZENworks (novell-zenserver) y del cargador de ZENworks (novell-zenloader) utilizando los comandos siguientes:

    /etc/init.d/novell-zenserver stop

    /etc/init.d/novell-zenloader stop

    Dado que todos los servidores de ZENworks acceden al almacén de datos, se deben detener estos servicios en todos los servidores de ZENworks del sistema. Asimismo, debe asegurarse de que se hayan cancelado todas las conexiones externas a la base de datos.

  2. Asegúrese de entrar en el servidor de ZENworks como usuario Root.

  3. En el servidor primario de ZENworks, escriba lo siguiente en la línea de comandos:

    zlm_dbrestore.sh -F vía_al_archivo_de_copia_de_seguridad

    Para restaurar una base de datos desde un servidor secundario, escriba lo siguiente en la línea de comandos:

    zlm_dbrestore.sh -F vía_al_archivo_de_copia_de_seguridad -H nombre_host_de_servidor_primario

    Si ha realizado una copia de seguridad de una base de datos desde el servidor secundario, sólo es posible restaurarla desde el servidor secundario si la versión de la base de datos PostgreSQL es la misma que la del servidor primario.

    Asegúrese de que la opción -F incluya la vía completa al archivo de copia de seguridad. Por ejemplo:

    zlm_dbrestore.sh -F /var/opt/novell/zenworks/backup/db/2005-08-23/23:30:00-zenworks-backup.tar.gz
    
  4. Si se le solicita, escriba S para detener el servidor de ZENworks (novell-zenserver).

  5. Si se le solicita, escriba S para detener el cargador de ZENworks (novell-zenloader).

  6. Cuando se le solicite una contraseña para soltar la base de datos, introduzca la contraseña configurada en /etc/opt/novell/zenworks/hibernate.cfg.xml que se utiliza para autenticar la base de datos PostgreSQL.

  7. Cuando se le solicite una contraseña para crear la nueva base de datos, introduzca la contraseña configurada en /etc/opt/novell/zenworks/hibernate.cfg.xml que se utiliza para autenticar la base de datos PostgreSQL.

    La información de registro acerca de la operación de restauración se guarda en el archivo /var/opt/novell/log/zenworks/dbrestore.log.

  8. Una vez que se completa la restauración, debe asegurarse de que el almacén de datos esté sincronizado con el almacén de objetos. Para obtener instrucciones al respecto, consulte la Sección 9.4, Sincronización del almacén de objetos y el almacén de datos.

  9. En todos los servidores de ZENworks, inicie el servidor de ZENworks (novell-zenserver) y el cargador de ZENworks (novell-zenloader) mediante los siguientes comandos:

    /etc/init.d/novell-zenserver start

    /etc/init.d/novell-zenloader start

9.2.5 Optimización de la base de datos del servidor

Para mejorar el rendimiento de la base de datos del servidor, utilice el guión zlm-pg-vacuum, que se encuentra en el directorio /opt/novell/zenworks/bin del servidor ZENworks. Cuando se instala un servidor primario de ZENworks que utiliza una base de datos de PostgreSQL local, el programa de instalación crea un guión que se ejecuta de forma diaria.

El guión zlm-pg-vacuum ejecuta el comando vacuumdb, lo que tiene un impacto significativo en el rendimiento de la base de datos. Debe entrar en el sistema como root antes de ejecutar el guión zlm-pg-vacuum. Para asegurar un rendimiento óptimo, se deben ejecutar los siguientes guiones vacuum:

  • zlm-pg-vacuum o zlm-pg-vacuum --busy-tables: según la actividad de la base de datos, puede que convenga ejecutar el guión diariamente o una vez a la semana. Se debe ejecutar una vez a la semana si el servidor no tiene mucha carga, y una vez al día si sí la tiene.

  • zlm-pg-vacuum --full: ejecute el guión en un momento en el que haya menos actividad o en un periodo de inactividad del servidor de base de datos. Según la actividad de la base de datos, conviene ejecutarlo una vez cada semana o una vez cada dos semanas. Realiza un análisis completo y bloquea las tablas de forma exclusiva. Se recomienda que ejecute manualmente el guión zlm-pg-vacuum --full una vez al mes para realizar los siguientes pasos:

    • 1. Detener todos los servicios de ZENworks ejecutando zlm-config --stop.
    • 2. Ejecutar zlm-pg-vacuum --full.
    • 3. Iniciar los servicios de ZENworks ejecutando zlm-config --start.

Además, se pueden ajustar los siguientes parámetros según los requisitos de memoria y el alcance:

  • En el archivo /etc/sysctl.conf, configure kernel.shmmax.

  • En el archivo postgresql.conf, configure shared_buffer, sort_mem, vacuum_mem, wal_buffers y checkpoint_segments.

Para obtener más información acerca del modo de ajustar los parámetros, consulte la documentación de PostgreSQL.

A continuación se presenta una situación de ejemplo que ilustra el modo de ajustar los parámetros de la base de datos. Los valores que se indican en este ejemplo son valores de muestra. Deberá ajustarlos según sus propios requisitos. Para obtener más información acerca del modo de ajustar los parámetros, consulte la documentación de PostgreSQL.

Situación de ejemplo: en este ejemplo, imaginemos que el servidor de ZENworks se ejecuta en un sistema IBM x346 con dos procesadores Xeon y 4 GB de RAM. La base de datos se ejecuta en el mismo servidor. Se dedican 2 GB de RAM a otros procesos de ZENworks, 1 GB al sistema operativo y a procesos externos a ZENworks y 1 GB restante a PostgreSQL.

Para optimizar el rendimiento de la base de datos del servidor:

  1. En el archivo /etc/sysctl.conf, defina el valor de kernel.shmmax como 1572864000 para que el proceso disponga de 1,5 GB de memoria compartida.

    El parámetro del kernel shmmax permite que PostgreSQL utilice más memoria compartida. Por defecto, el kernel sólo permite que un proceso utilice 32 MB de memoria compartida.

    NOTA:este paso no es aplicable si ZENworks 7.3 Linux Management se ejecuta en un dispositivo SLES 10, ya que el valor por defecto de kernel.shmmax en SLES 10 es de 4 GB.

  2. En el archivo postgresql.conf, configure los siguientes parámetros:

    • shared_buffers = 131072

    • sort_mem = 10240

    • vacuum_mem = 102400

    • wal_buffers = 20

    • checkpoint_segments = 20

  3. Reinicie el servidor para que los cambios surtan efecto.

9.2.6 Reinicio de los servicios del servidor de Novell Zenworks después de reiniciar la base de datos

Después de reiniciar la base de datos de PostgresSQL en el servidor de ZENworks Linux Management, las conexiones de la base de datos se restaurarán en unos 15 minutos. Durante este tiempo, el Centro de control de ZENworks y la utilidad zlman pueden mostrar errores relacionados con la conexión de la base de datos.

Para restaurar las conexiones inmediatamente, reinicie los servicios de ZENworks ejecutando el siguiente comando:

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