Una forma es usepg_dump
para generar un volcado plano sql, que puede gzip o lo que sea. Esta es sin duda la opción más sencilla, ya que los resultados pueden enviarse nuevamente al psql
para volver a cargar una base de datos y, como también puede exportar como texto sin formato, puede revisar o editar los datos antes de restaurarlos si es necesario.
El siguiente método es cerrar temporalmente su base de datos (o si su sistema de archivos es compatible con instantáneas atómicas, en teoría eso podría funcionar) y backup su directorio PostgreSQL data
.
This La página del sitio PostgreSQL también explica cómo hacer copias de seguridad en línea y recuperación puntual, que es definitivamente el método más difícil de configurar, pero también el óptimo. La idea es realizar una copia de seguridad básica (que puede hacer todos los días, un par de días o una semana) ejecutando SQL especial (pg_start_backup
y pg_stop_backup
) y hacer una copia (nivel del sistema de archivos) del directorio de su base de datos. La base de datos no se desconecta durante este tiempo, y todo funciona igual de normal. A partir de ese momento, la base de datos genera un registro de escritura anticipada (WAL) de cualquier cambio, que luego puede ser empujado (automáticamente, por la base de datos) a donde usted desee. Para restaurar, toma la copia de seguridad básica, cárguela en otra instancia de base de datos y luego vuelva a reproducir todos los archivos WAL. De esta forma, también puede realizar una recuperación puntual al no reproducir todos los registros.
Usando instantáneas atómicas no sólo "podría funcionar en teoría". Funciona perfectamente bien. Pero deben ser atómicos en * todos * sistemas de archivos en los que PostgreSQL tiene datos, incluido el directorio pg_xlog. –
Normalmente uso pg_dump para hacer mis copias de seguridad, pero estaba buscando una solución completa que utilizara pg_dump para crear copias de respaldo giradas, algo así como http://sourceforge.net/projects/automysqlbackup/. Sería incluso mejor si el script utilizara copias de seguridad en línea, pero creo que no debería ser difícil hacerlo yo mismo y ponerlo en Launchpad o en algún otro lado. Gracias por su respuesta. –
para una forma automática de realizar copias de seguridad de pg_dump con encriptación de clave pública/contraseña, rotación y carga en S3 check out safe: http://github.com/astrails/safe –