Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagebash
themeMidnight
titlepiilossa
sudo -u barman barman check siilo								# onko kaikki hyvin?
sudo -u barman barman backup siilo								# tee base-varmuuskopio
sudo -u barman barman list-backup siilo							# listaa varmuuskopiot
sudo -u barman barman recover siilo 20170902T162930 /tmp/foo 	# palauta varmuuskopio annettuun sijaintiin

Tiettyyn ajanhetkeen palaaminen varmuuskopiosta

Voi hitsin pimpulat! Joku Jesse hakkeroi sisään Kompassiin ja sotki datan. Nyt täytyy palata ajassa takaisin päin viimeisimpään tunnettuun ehjään ajanhetkeen. Jos Siilossa on vielä PostgreSQL pystyssä, varmuuskopioidaan sen nykyinen, vahingoittunut tila forensiikkaa ym. varten:

Code Block
languagebash
themeMidnight
titlepiilossa
sudo -u barman backup siilo

Seuraavaksi sammutetaan Siilosta PostgreSQL palautuksen ajaksi:

Code Block
languagebash
themeMidnight
titlesiilossa
sudo systemctl stop postgresql

Etsitään ensin sopiva base backup (todnäk toiseksi uusin, koska uusin on äsken varmuuskopioimamme vahingoittunut tila) ja sitten palautetaan tietokanta kyseistä varmuuskopiota ja transaktiolokia käyttäen haluttuun ajanhetkeen ylikirjoittaen Siilon nykyinen tila:

Code Block
languagebash
themeMidnight
titlepiilossa
sudo -u barman barman list-backup siilo
sudo -u barman barman recover siilo 20170902T162930 /var/lib/postgresql/9.6/main --target-time "2017-09-03T20:00:00Z" --remote-ssh-command "ssh postgres@siilo.tracon.fi"

Siilon PostgreSQL:n datahakemisto on nyt laitettu sellaiseen kuntoon, että kun PostgreSQL seuraavan kerran käynnistyy, se rullaa tietokannan takaisin valittuun ajanhetkeen.

Tutustutaan Barmanin meille generoiman recovery.conf-tiedoston sisältöön ja varmistetaan että se on kosher. Sitten käynnistetään PostgreSQL, jolloin se suorittaa palautuksen. Tarkistetaan PostgreSQL:n lokista, että palautus sujui mallikkaasti. Lopulta poistetaan recovery.done-tiedosto, jolle nimelle PostgreSQL on uudelleennimennyt Barmanin generoiman recovery.confin.

Code Block
languagebash
themeMidnight
titlesiilossa
sudo cat /var/lib/postgresql/9.6/main/recovery.conf
sudo systemctl start postgresql
sudo tail -n500 /var/log/postgresql/postgresql-9.6-main.log
sudo rm /var/lib/postgresql/9.6/main/recovery.done

Tietokannan palautuksen jälkeen varmuuskopiointi pitää vielä resetoida ja potkaista uudelleen käyntiin. Tässä vaiheessa on hyvä tehdä uusi base backup palautetusta, ehjästä tilasta.

Code Block
languagebash
themeMidnight
titlepiilossa
sudo -u barman barman check siilo						# näyttää parit FAILEDit
sudo -u barman barman receive-wal --create-slot siilo
sudo -u barman barman receive-wal --reset siilo
sudo -u barman barman check siilo						# saattaa kestää muutaman sekunnin kunnes FAILEDit ovat vaihtuneet OK:ksi
sudo -u barman barman backup siilo

pgAdmin4-hallintakäyttöliittymä

...