Module I2
Dalibo SCOP
24.12
18 décembre 2024
Cette formation est sous licence CC-BY-NC-SA. Vous êtes libre de la redistribuer et/ou modifier aux conditions suivantes :
PostgreSQL® Postgres® et le logo Slonik sont des marques déposées par PostgreSQL Community Association of Canada.
Ce document ne couvre que les versions supportées de PostgreSQL au moment de sa rédaction, soit les versions 13 à 17.
pg_dump
pg_basebackup
pg_receivewal
COMMIT
pg_wal/
(Non PITR)
$ pg_basebackup --format=tar --wal-method=stream \ --checkpoint=fast --progress -h 127.0.0.1 -U sauve \ -D /var/lib/postgresql/backups/
2 étapes :
archiver
Préalables :
postgresql.conf
wal_level = replica
archive_mode = on
always
La commande d’archivage :
archive_command = '… une commande …'
archive_library = '… une bibliothèque …'
archive_command
archive_command='cp %p /mnt/nfs1/archivage/%f && sync /mnt/nfs1/' archive_command='test ! -f /arch/%f && cp %p /arch/%f' archive_command='/usr/bin/rsync -az %p postgres@10.9.8.7:/archives/%f' archive_command='/opt/mon_script.sh %p %f' archive_command='/usr/bin/pgbackrest --stanza=prod archive-push %p' archive_command='/usr/bin/barman-wal-archive backup prod %p' archive_command='/bin/true' # désactivation
archive_timeout = '… min'
wal_level
archive_mode
pg_stat_archiver
pg_wal/archive_status/
.ready
.done
pg_wal
# configuration par défaut max_wal_senders = 10 max_replication_slots = 10
pg_hba.conf
host replication repli_user 192.168.0.0/24 scram-sha-256
CREATE ROLE repli_user LOGIN REPLICATION PASSWORD 'supersecret'
SELECT pg_create_physical_replication_slot('archivage');
pg_receivewal -D /data/archives -S archivage
SELECT pg_backup_start (
un_label
fast
)
rsync
postmaster.pid
log
pg_replslot
Ne pas oublier !!
SELECT * FROM pg_backup_stop (
true
Outil de sauvegarde pouvant aussi servir au sauvegarde basique
$ pg_basebackup --format=tar --wal-method=none \ --checkpoint=fast --progress -h 127.0.0.1 -U sauve \ -D /var/lib/postgresql/backups/
pg_stat_progress_basebackup
SELECT *, pg_size_pretty (backup_total) AS total, round(100.0*backup_streamed/backup_total::numeric,2) AS "%" FROM pg_stat_progress_basebackup \gx
-[ RECORD 1 ]--------+------------------------- pid | 3608155 phase | streaming database files backup_total | 925114368 backup_streamed | 197094400 tablespaces_total | 1 tablespaces_streamed | 0 total | 882 MB % | 21.30
Simple, mais à appliquer rigoureusement
Indiquer qu’on est en restauration
Commande de restauration
restore_command = '… une commande …'
postgresql.[auto.]conf
recovery_target_name
recovery_target_time
recovery_target_xid
recovery_target_lsn
recovery_target_inclusive
recovery_target_timeline
latest
recovery_target_action
pause
pg_wal_replay_resume
standby.signal
.history
checkpoint_timeout
max_wal_size
wal_compression = on
pglz
on
lz4
zstd
gzip
bzip2
lzma
barman
list-server
backup
list-backup
recover
N’hésitez pas, c’est le moment !
https://dali.bo/i2_quiz