sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo verificar que un archivo producido por pg_dump archive está bien y es válido?

Parece que intenta verificar la validez y corrección de un volcado de PostgreSQL que acaba de realizar.

Su malentendido clave es que no tiene que restaurar el volcado en la misma base de datos desde la que lo creó . Puede restaurar a otra base de datos en el mismo clúster, o para paranoia adicional, una base de datos en otro clúster (servidor). Verifique que el volcado se restauró sin errores y que los datos son como esperaba.

Para una paranoia adicional, detenga el servidor PostgreSQL y copie los archivos en el directorio de datos. De esa manera, también tiene una copia de seguridad a nivel de archivo. Tenga en cuenta que las copias a nivel de archivo de los directorios de datos de PostgreSQL pueden solo ser leído por la misma versión principal (8.1/8.2/...) de PostgreSQL creada con la misma opción en la misma plataforma; por lo tanto, si el datadir es de 9.2.x en Windows x64, solo puede ser leído por otro Windows host x64 con 9.2.x instalado.

Si le preocupa su base de datos original, probablemente no tenga copias de seguridad. Este es un crítico problema. Debe ir y leer urgentemente el capítulo de documentación sobre copia de seguridad y restauración y obtener un buen automatizado esquema de copia de seguridad en su lugar. Echa un vistazo a barman .

Actualizar después de editar la pregunta :

-F t es una elección extraña; volcados SQL simples o -F c normalmente tiene más sentido.

El archivo que ha producido no es un .gz (gzip comprimido), de todos modos, es un .tar archivo, no comprimido. Se puede extraer a un directorio lleno de archivos SQL.

Para probarlo, use pg_restore para restaurarlo a una nueva base de datos vacía creada con createdb o el CREATE DATABASE comando.