Buenas tardes a todos:
Estoy tratando de establecer las normas y lineamientos que debe seguir un Centro de Datos (CD) en temas de Salvas y Recuperación Automatizadas de la Información. El software que he propuesto para que realice dichas tareas es Bacula[1]. Este ya está configurado y realizando salvas de algunos servicios (SaS) disponibles en un CD. Ahora bien, el tema de las Bases de Datos con PostgreSQL me ha causado interés y me he dado a la tarea de buscar las posibles formas de salvar la información (estructura & contenidos) de las BD.

Hasta donde he investigado existen dos formas de salvar los contenidos:
1. Ficheros WAL con Point In Time Recovery (PITR) (la mejor pero más costosa)
2. Realizar DUMP de las tablas de la BD

Con la primera creo que es la mejor, resuelvo todo o casi todo, según estas el Manual de PostgreSQL[2] y esta web que encontré[3] las ventajas son las siguientes:

- Las copias de seguridad no necesitan ser consistentes: se necesita una copia de los ficheros del cluster (imagino que se refiera al contenido del directorio donde están almacenados los ficheros de las BD) y los ficheros WAL
- Un DUMP (volcado) completo de la BD no es necesario
- Incremental
- Continuo
- Point In Time Recovery: es posible restaurar la BD a un punto de tiempo determinado

Pero también tiene las siguentes desventajas:
- Complejidad adicional
- Necesidad de capacidad para almacenamiento
- Mayor escritura y acceso IO al disco duro lo cual puede impactar en el "performance" del servidor
- Trabaja en el cluster de BD completo

La segunda, que no es la mejor pero tampoco es mala ;), me resuelve el tema de salvar la estructura y contenidos de la BD pero es necesario consumir recursos adicionales cada vez que se realiza una copia de seguridad pues se debe hacer un volcado de todas las BD en ficheros para entonces realizar las copias a esos ficheros y además no me permite hacer PITR.

Teniendo en cuenta lo antes expresado ¿qué opción me recomendarían tomar?

En caso de usar la primera tengo un problemita y es que no tengo habilitado los ficheros WAL en mi servidor de BD por lo cual el fichero .wal no existe, ¿cual sería la mejor estrategia a seguir entonces? ¿generar volcados completos de las BD hasta el momento y partir de ese volcado comenzar a generar el fichero .wal? ¿donde encuentro documentación relacionada al tema de habilitar el fichero .wal? ¿qué cantidad de espacio máxima necesitaria para el caso de tener 10 BD por el momento?

A la espera de sus comentarios

[1] www.bacula.org
[2] http://www.postgresql.org/docs/8.2/static/continuous-archiving.html
[3] http://www.wzdftpd.net/trac/wiki/Misc/PostgreSQL/BackupPITR
--
Saludos
ReynierPM
--
TIP 7: no olvides aumentar la configuración del "free space map"

Responder a