PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come verificare che un archivio prodotto da pg_dump archive sia OK e valido?

Sembra che tu stia cercando di verificare la validità e la correttezza di un dump PostgreSQL che hai appena creato.

Il tuo principale malinteso è che non devi ripristinare il dump nello stesso database da cui lo hai creato . È possibile ripristinare su un altro database sullo stesso cluster o, per ulteriori paranoie, un database su un altro cluster (server). Verifica che il dump sia stato ripristinato senza errori e che i dati siano come ti aspetti.

Per ulteriore paranoia, ferma il server PostgreSQL e copia i file nella directory dei dati. In questo modo hai anche un backup a livello di file. Nota che le copie a livello di file delle directory di dati PostgreSQL possono solo essere letto dalla stessa versione principale (8.1/8.2/...) di PostgreSQL costruita con la stessa opzione sulla stessa piattaforma, quindi, se la datadir è da 9.2.x su Windows x64, può essere letta solo da un altro Windows host x64 con 9.2.x installato.

Se sei preoccupato per il tuo database originale, probabilmente non hai backup. Questo è un critico problema. Devi andare a leggere urgentemente il capitolo della documentazione sul backup e il ripristino e ottieni un buon automatizzato schema di backup in atto. Dai un'occhiata a barman .

Aggiorna dopo la modifica della domanda :

-F t è una scelta strana; semplici dump SQL o -F c di solito ha più senso.

Il file che hai prodotto non è un .gz (compresso con gzip), comunque, è un .tar archivio, non compresso. Può essere estratto in una directory piena di file SQL.

Per testarlo, usa pg_restore per ripristinarlo in un nuovo database vuoto creato con createdb o il CREATE DATABASE comando.