SOT: Mejor estrategia para realizar copias de seguridad de BD PostgrSQL

From: ReynierPM <rperezm(at)uci(dot)cu>
To: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>, Juan Carlos Delgado Cruz <jcdelgado(at)uci(dot)cu>, Yandry Alberto Terry <yalberto(at)uci(dot)cu>, Carlos Manuel Hernandez Vega <cvega(at)uci(dot)cu>
Subject: SOT: Mejor estrategia para realizar copias de seguridad de BD PostgrSQL
Date: 2009-12-07 22:29:12
Message-ID: 4B1D81B8.8000404@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message motum hesa 2009-12-08 00:04:44 Re: problema: FATAL: role "postgres" is not permitted to log in
Previous Message Erich Mario 2009-12-07 22:14:58 ayuda