2012-07-23 9 views
5

Ho un database postgresql su Amazon EC2 e ho bisogno di determinare il modo migliore per mantenere il backup di questi dati. Sto considerando due opzioni:Backup di Amazon EC2 postgresql: eseguire un'istantanea della directory dei dati o pg_dump su un volume EBS con snapshot costante?

(1) Montare un volume EBS su una directory come/pgsqldata e utilizzare questa directory come directory di dati postgresql (su Amazon Linux l'impostazione predefinita è/var/lib/pgsql/data /). Quindi questo volume otterrebbe istantanee frequenti.

o

(2) Mantenere la directory dei dati di PostgreSQL nella sua posizione predefinita. Quindi usa pg_dump per scaricare i backup frequentemente in una posizione come/pgsqldumps e quel volume otterrà un'istantanea dopo ogni pg_dump.

Una terza opzione sarebbe semplicemente creare un'istantanea del volume del dispositivo di root (sto utilizzando un'istanza supportata da EBS) poiché nel mio caso è sia un server web che un database. Mi piace l'idea di avere un volume dedicato per i backup dei dati però.

Infine, se sto scattando delle istantanee dirette della directory dei dati di live postgresql, devo preoccuparmi di possibili modifiche al database durante il processo di snapshot?

Grazie

+0

Vedere anche http://www.postgresql.org/docs/9.1/interactive/continuous-archiving.html (se non l'hai già fatto) – derobert

risposta

4

si dovrebbe spostare il volume per il proprio volume EBS in ogni caso, questo aiuta con l'affermazione di scrittura sui volumi EBS così come altri benefici. Inoltre, ho i registri che scrivono al loro stesso volume e anche quelli indietro.

Per rispondere alla domanda, faccio entrambe le cose. Avere il volume EBS snapshot e fare un dump del database. In questo modo, se desideri sincronizzare i tuoi dati live in una finestra di sviluppo (a seconda delle informazioni personali sul database) è facile con dump e restore, ma puoi anche ripristinare una nuova istanza e allegare facilmente un'istantanea. Se il tuo il dump del database è inferiore a 5 gb è possibile sincronizzarlo con S3 e dimenticare di dover archiviare i backup sul proprio volume, ma se non è necessario archiviarlo sul proprio volume EBS che viene quindi anche acquisito con snapshot su un normale base.

Here è uno script che ho scritto per fare questo, potrebbe essere obsoleto, ma dovrebbe funzionare.

Problemi correlati