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. Escriba el siguiente comando en el indicador de comandos:

    zlm_dbbackup.sh

NOTA: no se puede ejecutar la utilidad de copia de seguridad desde un servidor secundario de SLES 9 si el servidor primario es de SLES 10, porque la utilidad pg_dump del servidor de SLES 9, que emplea la utilidad de copia de seguridad, no es compatible con la versión de la base de datos de Postgres que se ejecuta en el servidor primario. Se debe ejecutar la utilidad de copia de seguridad 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 el servidor de ZENworks (novell-zenserver) y el 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.

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

  3. Escriba lo siguiente en el indicador de comandos:

    zlm_dbrestore.sh -F vía_al_archivo_de_copia_de_seguridad

    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 que proporcione una contraseña para eliminar la base de datos, escriba la contraseña del administrador.

  7. Cuando se le solicite que proporcione una contraseña para crear la base de datos nueva, escriba la contraseña del administrador.

    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.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-pgsql-vacuum que se encuentra en el directorio /opt/novell/zenworks/bin del servidor de 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 mensual.

El guión zlm-pgsql-vacuum ejecuta el comando vacuumdb, lo que tiene una repercusión significativa en el rendimiento de la base de datos. Debe entrar en el sistema como Root para ejecutar el guión zlm-pgsql-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.

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.com, 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.

  2. En el archivo postgresql.com, 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