PITR

PITR (Point-In-Time-Recovery) er en feature i PostgreSQL som gir relativt kontinuerlige backuper (minst hvert femte minutt for vår del). For mer dokumentasjon, se Postgres-dokumentasjonen om emnet.

PITR-backupene kjøres i tillegg til de vanlige pg_dump-ene i /var/lib/postgres/backup.

Generell virkemåte

Hver gang Postgres på cirkus har lyst til å rotere WAL-filene sine (minimum hvert femte minutt), kontakter den kolje (eller rettere sagt, hosten "backup"). Som brukeren pgbackup rsyncer den så over WAL-filen. Når den så er fornøyd og ikke trenger filen lenger (det skjer etter neste sjekkpunkt), sletter den filen. Autentiseringen skjer med en vanlig SSH-nøkkel som er eid av brukeren postgres.

Dersom kolje går ned, vil Postgres prøve på nytt etter en stund, helt til kolje kommer opp igjen. Vær obs at siden den ikke vil kunne klare å slette WAL-filene lenger, vil volumet gå fullt etter et par dager (litt avhengig av hvor mye ledig plass du har på WAL-volumet).

cirkus' preexec sørger for å kjøre pg_start_backup('dagens dato') før databasevolumet blir tatt backup av, og postexec sørger for at pg_stop_backup() blir kjørt. Dette sørger for at fil-backupene det vanlige backup-scriptet tar er gyldige WAL-backups. I tillegg havner det en egen statusfil for hver backup – igjen, se dokumentasjonen for mer informasjon.

Restore

Restore er beskrevet relativt utførlig i dokumentasjonen til PostgreSQL (se linken over). Det er imidlertid viktig å merke seg at recovery.conf ikke skal i /etc/postgresql/9.2/main som de andre konfigurasjonsfilene, men i /var/lib/postgresql/9.2/main (clusterkatalogen). Vi pakker også gamle WAL-filer med gzip (eller egentlig pigz) hver natt, så det kan være man må pakke disse opp først.

Det er også mulig å restore til en annen host enn cirkus dersom man ønsker å hente ut gamle data på denne måten (f.eks. noen som har gjort en uheldig DROP TABLE, men ønsker å beholde all den andre informasjonen) uten å ta ned hele databaseserveren. Framgangsmåten er akkurat som for å restore til cirkus, unntatt at man må sørge for at maskinen man restorer til også har ssh-tilgang til kolje.

Lenker: Start, backup, kurs

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2014-10-12 13:29 | Revisjon: 3 (historie, blame) | Totalt: 1420 kB | Rediger