PostgreSQL PITR-Wiederherstellung


9

Ich habe einen PostgreSQL 9.1-Server, der unter einem CentOS 5.8 32-Bit-Betriebssystem ausgeführt wird, und ich habe die WAL-Archivierung aktiviert. Auf diesem Server befinden sich drei Datenbanken: DatenbankA, DatenbankB und DatenbankC. Jemand löscht eine Tabelle um 12 Uhr in DatenbankB und ich möchte DatenbankB kurz vor dem Zeitpunkt wiederherstellen, zu dem die Tabelle gelöscht wurde. Es ist jetzt 15 Uhr.

Wie kann ich Datenbank B bis 12 Uhr wiederherstellen, ohne Daten in den beiden anderen Datenbanken im Wert von drei Stunden zu verlieren?

postgresql.conf

wal_level = archive             
archive_mode = on               
archive_command = 'test ! -f /opt/pgsql/logs/%f && cp %p /opt/pgsql/logs/%f'
max_wal_senders = 100

recovery.conf

restore_command = 'cp /opt/pgsql/logs/%f %p'
recovery_target_time = '2012-06-29 11:59:59 CEST'

Ich habe mein Basis-Backup um 9 Uhr ausgeführt

pg_basebackup -h 127.0.0.1 -D /opt/pgsql/backup

Der PostgreSQL-Dienst wurde um 15 Uhr heruntergefahren.

Antworten:


6

Ich würde eine Wiederherstellung zu einem bestimmten Zeitpunkt an einem anderen Ort durchführen, die gewünschte Zeit wiederherstellen und die Problemdatenbank pg_dump. Ich würde die eine Datenbank am normalen Speicherort ablegen, sie erneut erstellen und die Ausgabe pg_dump laden.

Stellen Sie sicher, dass Sie eine Kopie des Datenverzeichnisbaums des Clusters auf Dateisystemebene erstellen und speichern, bevor Sie so etwas starten.


Danke, +1 für die Antwort. Könnten Sie bitte die Schritte hinzufügen, die für die Wiederherstellung an einem anderen Speicherort und anschließend für die Wiederherstellung mit pg_restore erforderlich sind? Mit Ihrer Antwort denke ich darüber nach, den tatsächlichen Basis-Backup-Speicherort für die PITR zu verwenden.
Craig Efrein

0

Um die Antwort von kgrittn zu erweitern, können Sie auch nur eine pg_dumpder Tabellen erstellen, die gelöscht wurden, und sie in der vorhandenen Datenbank B neu erstellen , sodass Sie in den anderen Tabellen keine 6 Stunden Daten verlieren müssen.


Vielen Dank für Ihre Antwort, aber all die verschiedenen Einschränkungen und Beziehungen zwischen den Tabellen würden mich daran hindern, nur eine wiederherzustellen.
Craig Efrein
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.