Archivado continuo y puntos de recuperación (PITR)


PostgreSQL, guarda un log (WAL) que almacena todos los cambios que se realizan contra las bases de datos. Esto nos puede permitir en caso de fallo recuperar datos de una base de datos desde el punto concreto que necesitemos. En la documentación de PostgreSQL recomiendan combinar este sistema con el de copiado a nivel físico para una estrategia compleja de backups.

El procedimiento para hacer una copia de seguridad de base es relativamente simple:

1. Asegúrese de que el archivado WAL está habilitada y en funcionamiento.

2. Conéctese a la base de datos como superusuario y ejecute el comando:

3.SELECT pg_start_backup ("etiqueta");
a)etiqueta es cualquier cadena que desea utilizar para identificar la operación de copia de seguridad.
b)pg_start_backup crea una etiqueta de copia de seguridad de archivos, llamado backup_label , en el directorio del clúster con información acerca de la copia de seguridad, incluyendo la hora de inicio y la cadena de la etiqueta.
c)De forma predeterminada, pg_start_backup puede tardar mucho tiempo para finalizar. Esto se debe a que se realiza un punto de control y E / S requerida para el puesto de control se extenderá a lo largo de un período significativo de tiempo, de forma predeterminada la mitad de su intervalo inter-puesto de control checkpoint_completion_target Si desea iniciar la copia de seguridad tan pronto como sea posible, utilice:

SELECT pg_start_backup ('label', true);


Esto obliga al punto de control para hacer lo más rápidamente posible.

4. Realizar la copia de seguridad, utilizando cualquier herramienta conveniente del sistema de archivos, copia de seguridad, tales como el alquitrán o cpio (no pg_dump o pg_dumpall ). No es ni necesario ni deseable que detenga el funcionamiento normal de la base de datos mientras lo hace.

5. Una vez más conectarse a la base de datos como superusuario y ejecute el comando:

SELECT pg_stop_backup ();


Esto termina el modo de copia de seguridad y realiza el cambio automático al siguiente segmento WAL. La razón para el cambio es el de organizar para el último segmento de archivo WAL escrita durante el intervalo de copia de seguridad para estar listo para archivar.

6. Una vez que los archivos segmento WAL activos durante la copia de seguridad se archivan, ya está. El archivo identificado por pg_stop_backup resultado 's es el último segmento que se requiere para formar un conjunto completo de archivos de copia de seguridad. Si archive_mode está activada, pg_stop_backup no vuelve hasta que el último segmento se ha archivado. Archivo de estos archivos sucede automáticamente, puesto que ya ha configurado archive_command . Si usted desea poner un límite de tiempo para la ejecución de pg_stop_backup , establecer una adecuada statement_timeout valor.