Ripristino PITR PostgreSQL


9

Ho un server PostgreSQL 9.1 in esecuzione su un sistema operativo CentOS 5.8 a 32 bit e ho abilitato l'archiviazione WAL. Su questo server, ci sono tre database: databaseA, databaseB e databaseC. Qualcuno elimina una tabella alle 12 pm su databaseB e voglio ripristinare databaseB appena prima dell'orario in cui la tabella è stata eliminata. Adesso sono le 03:00.

Come posso ripristinare il databaseB fino alle 12 pm senza perdere tre ore di dati negli altri due database?

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'

Ho eseguito il backup di base alle 9 del mattino

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

Il servizio PostgreSQL è stato chiuso alle 15:00.

Risposte:


6

Vorrei fare un punto nel recupero del tempo in una posizione diversa, ripristinando l'ora desiderata e pg_dump il database dei problemi. Vorrei rilasciare un database nella posizione normale, crearlo di nuovo e caricare l'output di pg_dump.

Assicurarsi di creare e salvare una copia a livello di file system dell'albero della directory dei dati del cluster prima di avviare qualcosa del genere.


Grazie, +1 per la risposta. Potresti aggiungere i passaggi necessari per ripristinare in una posizione diversa e quindi ripristinare utilizzando pg_restore? Con la tua risposta, sto pensando di utilizzare l'effettiva posizione di backup di base per eseguire il PITR.
Craig Efrein,

0

Per espandere la risposta di kgrittn, puoi anche eseguire una pg_dumpdelle sole tabelle che sono state eliminate e ricostruirla nel database esistente B, quindi non è necessario perdere 6 ore di dati nelle altre tabelle.


grazie per la tua risposta, ma tutti i vari vincoli e relazioni tra le tabelle mi impedirebbero di ripristinarne solo una.
Craig Efrein,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.