pg_combinebackup — reconstruye una copia de seguridad completa a partir de una copia de seguridad incremental y sus copias de seguridad dependientes
pg_combinebackup [option...] [backup_directory...]
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ó.
-d--debug
Muestra gran cantidad de salida de depuración en stderr.
-k--linkUtiliza 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=outputdirEspecifica 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.
--cloneUtiliza 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-manifestDesactiva 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--versionMuestra la versión de pg_combinebackup y termina.
-?--helpMuestra ayuda sobre los argumentos de línea de comandos de pg_combinebackup y termina.
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.
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.