pg_dump for Blackbelts (oder Backups)
Es mag absurd erscheinen, aber ich bin nach Jahren der Verwendung darauf gestoßen, dass pg_dump [1] ein tolles Tool ist. Die Option --format=custom sorgt dafür, dass pg_restore zum Wiederherstellen der gespeicherten Inhalte verwendet werden kann. Gleichzeitig werden die Inhalte komprimiert gespeichert. Damit ist pg_dump ein tolles Tool für Backups. Aus so einem Backup kann dann z.B. auch nur eine Tabelle wiederhergestellt werden. In meinem Fall hatte ich eine Datenbank von 3,7 GB, die beständig am wachsen ist. Sie musste gesichert werden. Die resultierende Sicherungsdatei hat einen Umfang von ca. 0,7 GB und kann bei heutigen Leitungen gut vom externen Server heruntergeladen werden. In meinem Fall reichte eine kurze Zeile um die benötigten Daten schnell kompakt in einer Datei abzulegen.
pg_dump -U <user> -d <database> --format=custom --file <database>.pg_dump
pg_restore [2] wiederum erlaubt es im Notfall auch einzelne Komponenten aus dem Sicherungsdatei zu extrahieren. Mit
pg_restore <database>.pg_dump -l
kann der Inhalt der pg_dump-Datei aufgelistet werden. Eine einzelne Tabelle kann leicht per
pg_restore <database>.pg_dump --table <table-name> --file <file-name>
in eine Datei extrahiert werden. Die vollständige Beschreibung der Aufrufe für die aktuelle PostgreSQL-Version findet man in den referenzierten Artikeln:
Referenzen: