Red Hat Training

A Red Hat training course is available for RHEL 8

8.3.4.3.2. Realización de copias de seguridad de archivo continuo

Para realizar una copia de seguridad y restauración de la base de datos utilizando el método de archivo continuo, siga estos pasos:

8.3.4.3.2.1. Hacer una copia de seguridad de la base

Para realizar una copia de seguridad base, utilice la herramienta pg_basebackup que puede crear una copia de seguridad base en forma de archivos individuales o de un archivo tar.

Para utilizar la copia de seguridad básica, es necesario conservar todos los archivos de segmentos WAL generados durante y después de la copia de seguridad del sistema de archivos. El proceso de copia de seguridad básica crea un archivo de historial de copias de seguridad que se almacena en el área de archivo WAL y recibe el nombre del primer archivo de segmentos WAL que se necesita para la copia de seguridad del sistema de archivos. Cuando haya archivado de forma segura la copia de seguridad del sistema de archivos y los archivos de segmentos WAL utilizados durante la copia de seguridad, que se especifican en el archivo de historial de copias de seguridad, puede eliminar todos los segmentos WAL archivados con nombres numéricamente menores porque ya no son necesarios para recuperar la copia de seguridad del sistema de archivos. Sin embargo, considere la posibilidad de mantener varios conjuntos de copias de seguridad para estar seguro de que puede recuperar sus datos.

El archivo del historial de la copia de seguridad es un pequeño archivo de texto, que contiene la cadena de etiquetas que le diste a pg_basebackupla hora de inicio y de finalización, y los segmentos WAL de la copia de seguridad. Si utilizó la cadena de etiquetas para identificar el archivo de volcado asociado, entonces el archivo de historial archivado es suficiente para indicarle qué archivo de volcado debe restaurar.

Con el método de archivo continuo, es necesario mantener todos los archivos WAL archivados hasta la última copia de seguridad base. Por lo tanto, la frecuencia ideal de las copias de seguridad base depende de:

  • El volumen de almacenamiento disponible para los archivos WAL archivados.
  • La duración máxima posible de la recuperación de datos en situaciones en las que es necesaria la recuperación.

    En los casos en los que ha transcurrido un largo periodo desde la última copia de seguridad, el sistema vuelve a reproducir más segmentos WAL, por lo que la recuperación tarda más tiempo.

Para más información sobre cómo hacer una copia de seguridad de la base, consulte la documentación de PostgreSQL.

8.3.4.3.2.2. Restauración de la base de datos mediante una copia de seguridad de archivo continuo

Para restaurar una base de datos utilizando una copia de seguridad continua:

  1. Detener el servidor:

    # systemctl stop postgresql.service
  2. Copie los datos necesarios en una ubicación temporal.

    Preferiblemente, copie todo el directorio de datos del clúster y cualquier tablespace. Tenga en cuenta que esto requiere suficiente espacio libre en su sistema para mantener dos copias de su base de datos existente.

    Si no tiene suficiente espacio, guarde el contenido del directorio pg_wal del clúster, que puede contener registros que no fueron archivados antes de que el sistema se cayera.

  3. Elimine todos los archivos y subdirectorios existentes en el directorio de datos del clúster y en los directorios raíz de los tablespaces que esté utilizando.
  4. Restaurar los archivos de la base de datos desde la copia de seguridad del sistema de archivos.

    Asegúrate de que:

    • Los archivos se restauran con la propiedad correcta (el usuario del sistema de la base de datos, no root)
    • Los archivos se restauran con los permisos correctos
    • Los enlaces simbólicos en el subdirectorio pg_tblspc/ se han restaurado correctamente
  5. Eliminar los archivos presentes en el subdirectorio pg_wal/

    Estos archivos proceden de la copia de seguridad del sistema de archivos y, por tanto, son obsoletos. Si no archivó pg_wal/, vuelva a crearlo con los permisos adecuados.

  6. Copie los archivos de segmentos de WAL no archivados que guardó en el paso 2 en pg_wal/, si es que existen tales archivos.
  7. Cree el archivo de comandos de recuperación recovery.conf en el directorio de datos del clúster.
  8. Inicie el servidor:

    # systemctl start postgresql.service

    El servidor entrará en el modo de recuperación y procederá a leer los ficheros WAL archivados que necesite.

    Si la recuperación se interrumpe debido a un error externo, basta con reiniciar el servidor para que continúe la recuperación. Cuando el proceso de recuperación finaliza, el servidor cambia el nombre de recovery.conf a recovery.done para evitar que se vuelva a entrar accidentalmente en el modo de recuperación más adelante, cuando el servidor inicie las operaciones normales de la base de datos.

  9. Compruebe el contenido de la base de datos para asegurarse de que la base de datos se ha recuperado en el estado requerido.

    Si la base de datos no se ha recuperado en el estado requerido, vuelva al paso 1. Si la base de datos se ha recuperado en el estado requerido, permita que los usuarios se conecten restaurando el archivo pg_hba.conf a la normalidad.

Para obtener más información sobre la restauración mediante la copia de seguridad continua, consulte la documentación de PostgreSQL.