È possibile eseguire il backup e ripristinare una vista materializzata con i suoi dati?


10

Ho alcune viste materializzate difficili da calcolare, che voglio poter eseguire il backup e il ripristino utilizzando i dati archiviati effettivi e non mediante il ricalcolo.

È possibile in PostgreSQL 9.4?

(l'alternativa è creare tabelle effettive, ma sono più difficili da "aggiornare")


3
È possibile utilizzare copyper creare un dump di testo in chiaro dei dati (o qualsiasi altra utilità di esportazione). Non sono sicuro di come ripristinarlo però.
a_horse_with_no_name il

Puoi "reindirizzare" il CSV da COPY a / da un server remoto usando psql -c "\ COPY ...." -h un database some_IP sebbene ovviamente, devi aver creato la struttura della tabella nel punto in cui stai ripristinando.
John Powell,

Risposte:


8

Non proprio. Devi ricordare che il comando pg_dump crea semplici istruzioni CREATE TABLE e INSERT ecc. Quindi in modo efficace quando esegui pg_restore stai solo eseguendo istruzioni CREATE e INSERT sul server e inserendo i dati richiederebbe un comando "INSERT INTO MATERIALIZED VIEW". Ciò non avrebbe senso in quanto ottenere i dati da una scorciatoia rischierebbe anche l '"integrità" della vista: potresti inserire dati non validi nel processo di ripristino manuale che la vista non restituirebbe altrimenti. Quindi dubito che PostgreSQL possa mai supportare il ripristino manuale dei dati delle viste materializzate direttamente nel database.

Se è necessario eseguire il backup dei dati effettivi, si consiglia di utilizzare una tabella anziché la vista materializzata e di eseguire le istruzioni DELETE FROM / INSERT INTO pianificate sulla tabella.

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.