Hay dos herramientas diferentes en el servidor PostgreSQL : pg_dump , pg_basebackup
¿Cuál es la diferencia entre estas herramientas?
¿Cuál usar para crear una copia de seguridad de la base de datos?
pg_dump crea una copia de seguridad lógica , es decir, una serie de sentencias SQL que, cuando se ejecutan, crean una nueva base de datos que es lógicamente igual a la original.
pg_basebackup crea una copia de seguridad física , es decir, una copia de los archivos que constituyen el clúster de la base de datos. Debe usar la recuperación para que dicha copia de seguridad sea consistente.
Las principales diferencias son:
pg_dump generalmente toma más tiempo y crea una copia de seguridad más pequeña.
Con pg_dump puede respaldar una base de datos o partes de una base de datos, mientras que pg_basebackup siempre respalda todo el clúster.
Una copia de seguridad creada por pg_dump está completa, mientras que necesita archivos WAL para restaurar una copia de seguridad creada con pg_basebackup (a menos que haya utilizado la opción predeterminada -X stream , en cuyo caso la copia de seguridad contiene los segmentos WAL necesarios para que la copia de seguridad sea coherente).
Con una copia de seguridad lógica, solo puede restaurar el estado de la base de datos en el momento de la copia de seguridad, mientras que con una copia de seguridad física puede restaurar cualquier momento después del final de la copia de seguridad, siempre que haya archivado los segmentos WAL necesarios.
Necesita pg_basebackup para crear un servidor en espera, pg_dump no funcionará.