sql >> Database >  >> RDS >> PostgreSQL

Hoe te controleren of een archief dat door pg_dump archive is geproduceerd, in orde en geldig is?

Het lijkt erop dat u de geldigheid en correctheid van een PostgreSQL-dump probeert te verifiëren die u zojuist heeft gemaakt.

Uw belangrijkste misverstand is dat u de dump niet hoeft te herstellen in dezelfde database waaruit u deze heeft gemaakt . U kunt herstellen naar een andere database op hetzelfde cluster, of voor extra paranoia een database op een ander cluster (server). Controleer of de dump zonder fouten is hersteld en of de gegevens zijn zoals u verwacht.

Voor extra paranoia, stop de PostgreSQL-server en kopieer de bestanden in de datadirectory. Op die manier heb je ook een back-up op bestandsniveau. Houd er rekening mee dat kopieën op bestandsniveau van PostgreSQL-gegevensmappen alleen worden gelezen door dezelfde grote (8.1/8.2/...) versie van PostgreSQL gebouwd met dezelfde optie op hetzelfde platform - dus als de datadir van 9.2.x op Windows x64 is, kan deze alleen worden gelezen door een andere Windows x64-host met 9.2.x geïnstalleerd.

Als u zich zorgen maakt over uw oorspronkelijke database, heeft u waarschijnlijk geen back-ups. Dit is een kritieke probleem. U moet dringend het documentatiehoofdstuk over back-up en herstel en krijg een goede geautomatiseerde back-upschema aanwezig. Kijk eens op barman .

Update na wijziging van vraag :

-F t is een vreemde keuze; gewone SQL-dumps of -F c meestal logischer.

Het bestand dat je hebt gemaakt is geen .gz (gzip gecomprimeerd) bestand, hoe dan ook, het is een .tar archief, niet gecomprimeerd. Het kan worden uitgepakt in een map vol met SQL-bestanden.

Om het te testen, gebruik pg_restore om het te herstellen naar een nieuwe lege database gemaakt met createdb of de CREATE DATABASE commando.




  1. psycopg2.OperationalError:FATAL:niet-ondersteund frontend-protocol 1234.5679:server ondersteunt 2.0 tot 3.0

  2. Introductie van nieuwe functie - Spotlight Cloud-replicatie

  3. Zoek gebroken objecten in SQL Server

  4. SQlite Query in Android met cursor