Re: Restore Database
Christopher Hartung schrieb:
> Übersicht:
>
> DB-Instanz (aktive)
> Ordner (Bsp.):
> Daten /data/instance_1
> WAL /data/instance_1_ta-log
>
>
> DB-Instanz (Wiederherzustellende oder neue Instanz)
> Ordner (Bsp.):
>
> Daten /data/instance_2
> WAL /data/instance_2_ta-log
> recovery.conf => restore_command => hole aus /data/instance_1_ta-log
>
>
>
> Unser Backup von der Instanz 1:
> => Insert - Statements
> => SELECT pg_start_backup('label');
> => rsyncen des Verzeichnisses nach /data/instance_2
> => Insert - Statements
> => SELECT pg_stop_backup();
> => Insert - Statements
> => Stoppen Instanz 1
>
> cp der recovery.conf in das /data/instance_2 Verzeichnis und anpassen
> von postgresql.conf
>
> Wiederherstellung o.ä.:
>
> => Starten Instanz 2
>
> Resultat:
> => Log sagt alles wurde wieder hergestellt aus
> /data/instance_1_ta_log
> => Connect zu Instanz 2
> => Transaktionen, die nach dem pg_stop_backup
> eingespielt wurden sind nicht vorhanden!!!!!
Nach der Schilderung würde ich vermuten, daß nur die archivierten
WAL-Files aus /data/instance_1_ta-log zum Einsatz kommen.
Wenn nach dem pg_stop_backup() nicht sehr viele INSERT-Statements
gekommen sind, ist das letzte archivierte WAL-File das beim
WAL-Switch bei pg_stop_backup() erzeugte (ich gehe hier davon aus,
daß Version 8.2 im Einsatz ist. Bei Version 8.1 oder früher ist
das anders).
Damit auch die NACH dem letzten WAL-Switch durchgeführten
Transaktionen wiederhergestellt werden können, müssen die
aktiven WAL-Files kopiert werden:
rm -rf /data/instance_2/pg_xlog/*
cp -pr /data/instance_1/pg_xlog/* /data/instance_2/pg_xlog
oder ähnlich.
Wenn das NICHT das Problem war, dann wären folgende Informationen
bei der Diagnose hilfreich:
- Wie sieht das archive_command genau aus?
- Wie sieht das restore_command genau aus?
- Was genau sagt das Server-Log von instance_2 nach dem recovery?
- Was ist der Inhalt von /data/instance_1/pg_xlog
und /data/instance_1_ta-log?
Liebe Grüße,
Laurenz Albe
Home |
Main Index |
Thread Index