...
| Code Block |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
| title | piilossa |
|---|
|
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 |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
| title | piilossa |
|---|
|
sudo -u barman backup siilo |
Seuraavaksi sammutetaan Siilosta PostgreSQL palautuksen ajaksi:
| Code Block |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
| title | siilossa |
|---|
|
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 |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
| title | piilossa |
|---|
|
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 |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
| title | siilossa |
|---|
|
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 |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
| title | piilossa |
|---|
|
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ä
...