当前位置: 首页 > 工具软件 > pg_probackup > 使用案例 >

pg_probackup 之三 Full Backup、 Incremental PAGE Backup

陶璞
2023-12-01

os: centos 7.4
db: postgresql 9.6
pg_probackup: 2.1.5

pg_probackup 是 postgres pro 一款优秀的备份还原工具,目前兼容 PostgreSQL 9.5, 9.6, 10, 11;

Creating a Full Backup

# su - postgres
$ pg_probackup show-config -B /var/lib/pgsql/pgbackup --instance test1

$ pg_probackup backup -B /var/lib/pgsql/pgbackup --instance test1 -b FULL

Where backup_mode(-b) can take one of the following values:

FULL — creates a full backup that contains all the data files of the cluster to be restored.
DELTA — reads all data files in the data directory and creates an incremental backup for pages that have changed since the previous backup.
PAGE — creates an incremental PAGE backup based on the WAL files that have generated since the previous full or incremental backup was taken. Only changed blocks are readed from data files.
PTRACK — creates an incremental PTRACK backup tracking page changes on the fly.

Verifying a Cluster

Install extension amcheck or amcheck_next in every database of the cluster:
amcheck
amcheck_next
extension amcheck 参考 https://github.com/petergeoghegan/amcheck

# su - postgres
$ psql

postgres=# CREATE EXTENSION amcheck;

To perform logical verification the following permissions are required in every database of the cluster:

# su - postgres
$ psql

postgres=# GRANT SELECT ON TABLE pg_catalog.pg_am TO backup;
GRANT SELECT ON TABLE pg_catalog.pg_class TO backup;
GRANT SELECT ON TABLE pg_catalog.pg_database TO backup;
GRANT SELECT ON TABLE pg_catalog.pg_namespace TO backup;
GRANT SELECT ON TABLE pg_catalog.pg_extension TO backup;
GRANT EXECUTE ON FUNCTION bt_index_check(oid) TO backup;
GRANT EXECUTE ON FUNCTION bt_index_check(oid, bool) TO backup;

$ pg_probackup checkdb -B /var/lib/pgsql/pgbackup --instance test1 -D /var/lib/pgsql/9.6/data

$ pg_probackup checkdb -D /var/lib/pgsql/9.6/data --amcheck

Creating a Incremental PAGE Backup

# su - postgres
$ pg_probackup backup -B /var/lib/pgsql/pgbackup --instance test1 -b FULL
$ pg_probackup backup -B /var/lib/pgsql/pgbackup --instance test1 -b PAGE

$ pg_probackup show -B /var/lib/pgsql/pgbackup

BACKUP INSTANCE 'test1'
=================================================================================================================================
 Instance  Version  ID      Recovery Time           Mode  WAL      Current/Parent TLI  Time   Data  Start LSN   Stop LSN  Status 
=================================================================================================================================
 test1     9.6      PYZWER  2019-10-07 16:18:31+08  PAGE  ARCHIVE  1 / 0                 6s  299kB  0/D000028  0/E0000B8  OK     
 test1     9.6      PYZVTI  2019-10-07 16:05:46+08  FULL  ARCHIVE  1 / 0                 6s   22MB  0/A000060  0/A001F30  OK 
 

PAGE 比 FULL 要小很多很多

Validating a Backup

# su - postgres
$ pg_probackup validate -B /var/lib/pgsql/pgbackup
$ pg_probackup validate -B /var/lib/pgsql/pgbackup --instance test1 --recovery-target-time='2019-10-07 16:09:11+08' 

参考:
https://github.com/postgrespro/pg_probackup
https://postgrespro.com/products/extensions/pg_probackup

https://github.com/postgrespro/pg_probackup/blob/master/Documentation.md
https://postgrespro.github.io/pg_probackup/
https://postgrespro.com/docs/postgrespro/9.6/app-pgprobackup

 类似资料: