------- install
wget -q -O - \
https://github.com/pgbackrest/pgbackrest/archive/release/2.45.tar.gz | \
tar zx -C /build
sudo apt-get install make gcc libpq-dev libssl-dev libxml2-dev pkg-config \
liblz4-dev libzstd-dev libbz2-dev libz-dev libyaml-dev
cd /build/pgbackrest-release-2.45/src && ./configure && make
sudo apt-get install postgresql-client libxml2
sudo scp build:/build/pgbackrest-release-2.45/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest
sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown postgres:postgres /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf
sudo -u postgres pgbackrest
-------- start
sudo -u postgres /usr/lib/postgresql/12/bin/initdb \
-D /var/lib/postgresql/12/demo -k -A peer
sudo pg_createcluster 12 demo
/etc/pgbackrest/pgbackrest.conf ⇒ Configure the PostgreSQL cluster data directory
[demo]
pg1-path=/var/lib/postgresql/12/demo
sudo -u postgres bash -c ' \
export PGBACKREST_LOG_PATH=/path/set/by/env && \
pgbackrest --log-level-console=error help backup log-path'
------------- Create the Repository
sudo mkdir -p /var/lib/pgbackrest
sudo chmod 750 /var/lib/pgbackrest
sudo chown postgres:postgres /var/lib/pgbackrest
----------- Configure Archiving
archive_command = 'pgbackrest --stanza=demo archive-push %p'
archive_mode = on
max_wal_senders = 3
wal_level = replica
sudo pg_ctlcluster 12 demo restart
--------------Create the Stanza
sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
---------- Check
sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check
----------- Backup
sudo -u postgres pgbackrest --stanza=demo \
--log-level-console=info backup
---------- info
sudo -u postgres pgbackrest info
---------- restore
sudo pg_ctlcluster 12 demo stop
sudo -u postgres rm /var/lib/postgresql/12/demo/global/pg_control
sudo pg_ctlcluster 12 demo start
pg-primary ⇒ Remove old files from demo cluster
sudo -u postgres find /var/lib/postgresql/12/demo -mindepth 1 -delete
pg-primary ⇒ Restore the demo cluster and start PostgreSQL
sudo -u postgres pgbackrest --stanza=demo restore
sudo pg_ctlcluster 12 demo start
--------- monitoring
sudo -u postgres cat \
/var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql
pg-primary ⇒ Query last successful backup time and archived WAL
sudo -u postgres cat \
/var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql