Automatizando la limpieza de la base de datos - WEM

En general ocurren problemas por falta de espacio en el disco duro del servidor WEM debido a ausencia de un procedimiento de limpieza automática de la base de datos. Para resolver este problema tan común, es sólo ejecutar los pasos a continuación - válido para los paquetes instalados en Solaris:

1) Backup
Para disminuir el riesgo de pérdida de datos, el backup de la base de datos del servidor WEM debe ser hecho semanalmente. Sin embargo, dependiendo de la configuración y frecuencia de actualizaciones de datos enviados por el ASR 5000, es posible ejecutarlo más de una vez por semana. Revise las instrucciones en el archivo de README (/<carpeta dónde el WEM está instalado>/server/scripts/README.backup.txt) y haga el backup, antes de continuar;

2) Ajuste la limpieza de la base de datos, cambiando los valores de los parámetros de "RETENTION_PERIOD_FOR_*", en el archivo /<carpeta dónde el WEM está instalado>/server/scripts/tableFile.cfg

Existen los parámetros:
RETENTION_PERIOD_FOR_BULKSTAT_DB_TABLES=...
RETENTION_PERIOD_FOR_BULKSTAT_ARCHIVE_FILES=...

Ellos manejan el período que los registros deben mantenerse en la base de datos ("archive"). Es aconsejable cambiar sólo el parámetro “RETENTION_PERIOD_FOR_BULKSTAT_DB_TABLES”. Obs: de acuerdo con las mejores prácticas, cambiar el "RETENTION_PERIOD" a 30 días.

3) Ejecutar la limpieza de la base de datos a través del script: ./<carpeta dónde el WEM está instalado>/server/scripts/deleteFilesTables.sh

4) Al término, ejecutar el procedimiento de "vacuum" (hacerlo una vez sólo):
- Autenticarse como root en el servidor WEM;
- Accesar la carpeta de la base de datos Postgres: cd /<carpeta dónde el WEM está instalado>/postgres/bin
- Ejecutar el comando: ./vacuumdb -U postgres -a –f

5) Para automatizar el proceso de limpieza, el modo más simples es crear una tarea en el cron (crontab):
- Autenticado como root, ejecutar: vi /var/spool/cron/crontabs/root
- Añadir la línea:
45 3 * * * /<carpeta dónde el WEM está instalado>/server/scripts/deleteFilesTables.sh >> /<carpeta dónde el WEM está instalado>/server/log/deleteFilesTables.log 2>&1

Obs: como ejemplo, la limpieza será hecha diariamente a las 3:45h y los eventos serán guardados en el archivo: /<carpeta dónde el WEM está instalado>/server/log/deleteFilesTables.log.
- Para revisar si la línea fue actualizada, ejecutar: crontab -l

6) Configurar el logadm para girar el archivo de log (“deleteFilesTables.log”) al llegar en 1Mb, y mantener hasta cinco archivos como histórico – eso es muy importante para evitar el archivo de log aumentando indefinidamente:
- Ejecutar: vi /etc/logadm.conf
- Añadir la línea: /<carpeta dónde el WEM está instalado>/server/log/deleteFilesTables.log -C 5 –s 1024k -a 'kill -HUP `cat /var/run/syslog.pid`'

Obs: no hay necesidad de ejecutar el comando "vacuumdb -U postgres -a -f" por el cron. El script "deleteFilesTables.sh" hará un "vacuum" normal, que no soltará espacio físico en el disco duro, pero permitirá que él virtualmente sea reutilizado por la base de datos. Si ejecutado de modo diario, eso será suficiente para evitar que la base de datos aumente demasiado, creando más problemas de espacio en disco. El comando “vacuumdb” con la opción "-f" es necesario sólo una vez, porque después de su término hay mucho espacio en disco liberado.

Por último, si algún proceso del WEM quedar fuera de servicio ("Not Running"), es posible resetearlo:
cd /<carpeta dónde el WEM está instalado>/server
./serv status  // verifica el estado de los procesos
./serv stop    // paraliza los procesos
./serv start   // inicíalos
./serv status  // verifica el estado nuevamente

Historial de versiones
Revisión n.º
1 de 1
Última actualización:
‎01-16-2013 06:38 AM
Actualizado por:
 
Etiquetas (1)
Etiquetas (1)