pg_combinebackup

pg_combinebackup — reconstruye una copia de seguridad completa a partir de una copia de seguridad incremental y sus copias de seguridad dependientes

Synopsis

pg_combinebackup [option...] [backup_directory...]

Descripción

pg_combinebackup se utiliza para reconstruir una copia de seguridad completa sintética a partir de una copia de seguridad incremental y las copias de seguridad anteriores de las que depende.

Especifica todas las copias de seguridad requeridas en la línea de comandos de la más antigua a la más reciente. Es decir, el primer directorio de copia de seguridad debe ser la ruta a la copia de seguridad completa, y el último debe ser la ruta a la copia de seguridad incremental final que deseas restaurar. La copia de seguridad reconstruida se escribirá en el directorio de salida especificado por la opción -o.

pg_combinebackup intentará verificar que las copias de seguridad que especifiques formen una cadena de copia de seguridad válida a partir de la cual se pueda reconstruir una copia de seguridad completa correcta. Sin embargo, no está diseñado para ayudarte a realizar un seguimiento de qué copias de seguridad dependen de qué otras copias de seguridad. Si eliminas una o más de las copias de seguridad anteriores en las que se basa tu copia de seguridad incremental, no podrás restaurarla. Además, pg_combinebackup solo intenta verificar que las copias de seguridad tengan la relación correcta entre sí, no que cada copia de seguridad individual esté intacta; para eso, utiliza pg_verifybackup.

Dado que la salida de pg_combinebackup es una copia de seguridad completa sintética, se puede utilizar como entrada para una futura invocación de pg_combinebackup. La copia de seguridad completa sintética se especificaría en la línea de comandos en lugar de la cadena de copias de seguridad a partir de las cuales se reconstruyó.

Opciones

-d
--debug

Muestra gran cantidad de salida de depuración en stderr.

-k
--link

Utiliza enlaces duros (hard links) en lugar de copiar archivos a la copia de seguridad sintética. La reconstrucción de la copia de seguridad sintética puede ser más rápida (sin copiar archivos) y utilizar menos espacio en disco, pero se debe tener cuidado al utilizar el directorio de salida, ya que cualquier modificación en ese directorio (por ejemplo, iniciar el servidor) también puede afectar a los directorios de entrada. Del mismo modo, los cambios en los directorios de entrada (por ejemplo, iniciar el servidor en la copia de seguridad completa) podrían afectar al directorio de salida. Por lo tanto, esta opción se utiliza mejor cuando los directorios de entrada son solo copias que se eliminarán después de que se haya completado pg_combinebackup.

Requiere que las copias de seguridad de entrada y el directorio de salida estén en el mismo sistema de archivos.

Si no hay un manifiesto de copia de seguridad disponible o no contiene una suma de comprobación del tipo correcto, se seguirán creando enlaces duros, pero el archivo también se leerá bloque por bloque para el cálculo de la suma de comprobación.

-n
--dry-run

La opción -n/--dry-run instruye a pg_combinebackup para determinar qué se haría sin crear realmente el directorio de destino ni ningún archivo de salida. Es particularmente útil en combinación con --debug.

-N
--no-sync

Por defecto, pg_combinebackup esperará a que todos los archivos se escriban de forma segura en el disco. Esta opción hace que pg_combinebackup devuelva el control sin esperar, lo que es más rápido, pero significa que un fallo posterior del sistema operativo puede dejar corrupta la copia de seguridad de salida. Generalmente, esta opción es útil para pruebas pero no debe utilizarse al crear una instalación de producción.

-o outputdir
--output=outputdir

Especifica el directorio de salida en el que se debe escribir la copia de seguridad completa sintética. Actualmente, este argumento es obligatorio.

-T olddir=newdir
--tablespace-mapping=olddir=newdir

Reubica el tablespace en el directorio olddir a newdir durante la copia de seguridad. olddir es la ruta absoluta del tablespace tal como existe en la copia de seguridad final especificada en la línea de comandos, y newdir es la ruta absoluta que se utilizará para el tablespace en la copia de seguridad reconstruida. Si alguna de las rutas necesita contener un signo de igual (=), antepón una barra invertida. Esta opción se puede especificar varias veces para múltiples tablespaces.

--clone

Utiliza la clonación eficiente de archivos (también conocida como reflinks en algunos sistemas) en lugar de copiar archivos al nuevo directorio de datos, lo que puede dar como resultado una copia casi instantánea de los archivos de datos.

Si no hay un manifiesto de copia de seguridad disponible o no contiene una suma de comprobación del tipo correcto, se utilizará la clonación de archivos para copiar el archivo, pero el archivo también se leerá bloque por bloque para el cálculo de la suma de comprobación.

La clonación de archivos solo se admite en algunos sistemas operativos y sistemas de archivos. Si se selecciona pero no se admite, la ejecución de pg_combinebackup generará un error. En la actualidad, se admite en Linux (núcleo 4.5 o posterior) con Btrfs y XFS (en sistemas de archivos creados con soporte para reflink), y en macOS con APFS.

--copy

Realiza una copia de archivos normal. Este es el valor predeterminado. (Consulta también --copy-file-range, --clone y -k/--link.)

--copy-file-range

Utiliza la llamada al sistema copy_file_range para una copia eficiente. En algunos sistemas de archivos, esto ofrece resultados similares a --clone, compartiendo bloques físicos de disco, mientras que en otros puede copiar bloques pero lo hace a través de una ruta optimizada. Actualmente, se admite en Linux y FreeBSD.

Si no hay un manifiesto de copia de seguridad disponible o no contiene una suma de comprobación del tipo correcto, se utilizará copy_file_range para copiar el archivo, pero el archivo también se leerá bloque por bloque para el cálculo de la suma de comprobación.

--manifest-checksums=algorithm

Al igual que pg_basebackup, pg_combinebackup escribe un manifiesto de copia de seguridad en el directorio de salida. Esta opción especifica el algoritmo de suma de comprobación que se debe aplicar a cada archivo incluido en el manifiesto de copia de seguridad. Actualmente, los algoritmos disponibles son NONE, CRC32C, SHA224, SHA256, SHA384 y SHA512. El valor predeterminado es CRC32C.

--no-manifest

Desactiva la generación de un manifiesto de copia de seguridad. Si no se especifica esta opción, se escribirá un manifiesto de copia de seguridad para la copia de seguridad reconstruida en el directorio de salida.

--sync-method=method

Cuando se establece en fsync, que es el valor predeterminado, pg_combinebackup abrirá y sincronizará de forma recursiva todos los archivos en el directorio de la copia de seguridad. Cuando se utiliza el formato plano, la búsqueda de archivos seguirá los enlaces simbólicos para el directorio WAL y cada tablespace configurado.

En Linux, se puede usar syncfs en su lugar para solicitar al sistema operativo que sincronice todo el sistema de archivos que contiene el directorio de copia de seguridad. Cuando se utiliza el formato plano, pg_combinebackup también sincronizará los sistemas de archivos que contienen los archivos WAL y cada tablespace. Consulta recovery_init_sync_method para obtener información sobre las advertencias que debes tener en cuenta al usar syncfs.

Esta opción no tiene efecto cuando se utiliza --no-sync.

-V
--version

Muestra la versión de pg_combinebackup y termina.

-?
--help

Muestra ayuda sobre los argumentos de línea de comandos de pg_combinebackup y termina.

Limitaciones

pg_combinebackup no vuelve a calcular las sumas de comprobación de las páginas al escribir en el directorio de salida. Por lo tanto, si alguna de las copias de seguridad utilizadas para la reconstrucción se tomó con las sumas de comprobación deshabilitadas, pero la copia de seguridad final se tomó con las sumas de comprobación habilitadas, el directorio resultante puede contener páginas con sumas de comprobación no válidas.

Para evitar este problema, se recomienda realizar una nueva copia de seguridad completa después de cambiar el estado de las sumas de comprobación del clúster utilizando pg_checksums. De lo contrario, puedes deshabilitar y luego, opcionalmente, volver a habilitar las sumas de comprobación en el directorio producido por pg_combinebackup para corregir el problema.

Entorno

Esta utilidad, al igual que la mayoría de las demás utilidades de PostgreSQL, utiliza las variables de entorno admitidas por libpq (ver Section 32.15).

La variable de entorno PG_COLOR especifica si se debe usar color en los mensajes de diagnóstico. Los valores posibles son always, auto y never.

Véase también

pg_basebackup