Pgbackrest kasutamine
Sissejuhatus
pgbackrest https://github.com/pgbackrest/pgbackrest on C keeles Crunchy Data https://www.crunchydata.com/ poolt arendatud PostgreSQL andmebaasi varundamise tarkvara.
Misc
- kas pgbackrest abil saab korraldada, et kasutajad saavad ise oma andmeid taastada (nt iga varundatava süsteemi pgbackrest protsess käivitatakse eraldi kasutajaga)
- varunduse arvutis saab varundustest seise käivitada docker konteinerites (kasutades varundusele vastavat postgresql tarkvara versiooni ja extensionite jms koosseisu)
Tööpõhimõte
pgbackrest saab üldiselt kasutada kahes režiimis
- lokaalselt - pgbackrest moodustab repo samasse arvutisse kus asuvad varundatavad andmed
- kaugelt - pgbackrest repo ja varundatav arvuti on erinevad arvutid
Käesolev tekst tegeleb üle võrgu st kaugelt varundamise ja taastega.
tf-vm-84 tf-vm-86 tf-vm-87 _______ _______ _______ | | | | | | | | | | | | |_______| |_______| |_______| | | | | | | | | | ------|-------------|----------|-------------------| | | ___|___ | | /var/lib/pgbackrest | | |_______| tf-vm-85
kus
- arvutid saavad omavahel suhelda ssh võtmete abil moodustatud usalduse abil
Süsteemide ettevalmistamine
TODO
- Andmebaas peab muu hulgas olema lähtestatud data-checksums toega, nt
# pg_createcluster --locale et_EE.UTF-8 10 main -- --data-checksums
- Baasi seadistustes peab olema muu hulgas
root@tf-vm-84:~# grep archive_ /etc/postgresql/10/main/postgresql.conf archive_mode = on archive_command = 'pgbackrest --stanza=db-tf-vm-84 archive-push %p'
- ssh võtmete genereerimine ja laialijaotamine (varunduse arvutis on vajalik teha vaid üks kord)
varundatav-arvuti$ ssh-keygen varunduse-arvuti$ ssh-keygen
Paigaldamine
Paigaldamiseks sobib kasutada apt.postgresql.org repot ja öelda nii varundamise kui varundatavas arvutis
# apt-get install curl ca-certificates gnupg2 # curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - # cat /etc/apt/sources.list.d/pgdg.list deb http://apt.postgresql.org/pub/repos/apt buster-pgdg main # apt-get update # apt-get install pgbackrest
Tulemusena paigaldatakse süsteemi lisaks sõltuvustena nt paketid
libgdbm-compat4 libgdbm6 libperl5.28 libpq5 perl perl-modules-5.28 pgbackrest pgdg-keyring postgresql-client-common postgresql-common ssl-cert
ja pgbackrest, mis sisaldab mõnda faili
/usr/bin/pgbackrest - programm /etc/pgbackrest.conf - peamine seadistusfail
Eraldi kasutajat ei moodustata, tundub, et kõige sobilikum on tegutseda postgres kasutajana.
Varundamise seadistamine
Repo arvutis tuleb moodustada nt seadistusfail /etc/pgbackrest.conf
# cat /etc/pgbackrest.conf [global] repo-path=/var/lib/pgbackrest repo1-retention-full=1 process-max=2 log-level-console=info log-level-file=debug start-fast=y stop-auto=y [db-primary] pg1-path=/var/lib/postgresql/10/main pg1-host=tf-vm-84 pg1-host-user=postgres
ja varundatavas arvutis seadistusfail /etc/pgbackrest.conf
# cat /etc/pgbackrest.conf [global] repo1-host=tf-vm-85 repo1-path=/var/lib/pgbackrest repo1-host-user=postgres process-max=2 log-level-console=info log-level-file=debug [db-primary] pg1-path=/var/lib/postgresql/10/main
Varundamine
Varundamiseks sobib repo arvutis öelda nt
$ pgbackrest --stanza=db-tf-vm-84 stanza-create $ pgbackrest --stanza=db-primary backup $ pgbackrest --stanza=db-primary --type=full backup $ pgbackrest --stanza=db-primary info
Taaste
Taastamiseks sobib varundatavas arvutis öelda nt (või ilma --delta suvandita)
$ pgbackrest --stanza=db-primary --delta restore
Varundusest eemaldamine
TODO
$ pgbackrest --stanza=db-primary stop $ pgbackrest --stanza=db-primary stanza-delete --force
Integreerimine muu varundusega
Kui üldiselt on kasutuses nt Data Protector tarkvara, siis võiks korraldada kahe tasemelise varundamise
- pgbackrest varundab varunduse arvuti failisüsteemi HP DP mõttes 1st stage varunduse
- data protector kirjutab 1st stage varundust failisüsteemist 2nd stage varunduseks linti