测试环境说明


OS:CentOS Linux release 7.3.1611 (Core) X64

PG:pg10 beta3 source install

pg_probackup: 2.0.3 source install


建立归档备份目录


[postgres@masterdb ~]# mkdir /backupdir

[postgres@masterdb ~]# chown postgres.postgres -R /backupdir


数据库参数配置


### - Archiving - ###

archive_mode = on              

archive_command = 'pg_probackup archive-push -B /backupdir --instance pg10 --wal-file-path %p --wal-file-name %f'


### default ###

max_wal_senders = 10

hot_standby = on

full_page_writes = on


初始化备份目录


[postgres@masterdb ~]# su - postgres

[postgres@masterdb ~]$ pg_probackup init -B /backupdir

INFO: Backup catalog '/backupdir' successfully inited


添加备份实例目录


[postgres@masterdb ~]$ pg_probackup add-instance -B /backupdir -D /pgdata10/ --instance pg10

INFO: Instance 'pg10' successfully inited


显示备份实例配置


[postgres@masterdb ~]$ pg_probackup show-config -B /backupdir --instance pg10

#Backup instance info

PGDATA = /pgdata10/

system-identifier = 6460633300993501667

#Connection parameters:

PGDATABASE = postgres

#Replica parameters:

#Logging parameters:

#Retention parameters:

#Compression parameters:

compress-algorithm = none

compress-level = 6

[postgres@masterdb ~]$ pg_probackup backup -B /backupdir -b full --instance pg10

INFO: wait for pg_stop_backup()

INFO: Backup OVKYC7 completed

[postgres@masterdb ~]$ 


增量备份


[postgres@masterdb ~]$ pg_probackup backup -B /backupdir -b PAGE --instance pg10

INFO: wait for LSN 0/4000028 in archived WAL segment /backupdir/wal/pg10/000000010000000000000004

INFO: wait for pg_stop_backup()

INFO: Backup OVKYME completed

[postgres@masterdb ~]$ 


显示备份


[postgres@masterdb ~]$ pg_probackup show -B /backupdir


BACKUP INSTANCE 'pg10'

===============================================================================================================================

 Instance    ID      Recovery time        Mode    WAL      Current/Parent TLI    Time    Data    Start LSN    Stop LSN   Status  

===============================================================================================================================

 pg10        OVKYME  2017-09-01 10:51:56  PAGE    ARCHIVE    1 / 0                 8s  4407kB   0/4000028    0/50000F0   OK      

 pg10        OVKYC7  2017-09-01 10:45:57  FULL    ARCHIVE    1 / 0                17s    31MB   0/2000060    0/2000198   OK      

[postgres@masterdb ~]$ 


验证备份


[postgres@masterdb ~]$ pg_probackup validate -B /backupdir --instance pg10

INFO: Validate backups of the instance 'pg10'

INFO: Validate backup OVKYME

INFO: backup validation completed successfully

INFO: Validate backup OVKYC7

INFO: backup validation completed successfully

INFO: All backups are valid

[postgres@masterdb ~]$


恢复备份


[postgres@masterdb pgdata10]$ pg_probackup restore -B /backupdir --instance pg10 -D /pgdata10/

INFO: backup validation completed successfully




配置保存期限


[postgres@masterdb ~]$ pg_probackup set-config -B /backupdir --instance pg10 --retention-redundancy 2 --retention-window 7

[postgres@masterdb ~]$ pg_probackup show-config -B /backupdir --instance pg10

#Backup instance info

PGDATA = /pgdata10/

system-identifier = 6460633300993501667

#Connection parameters:

PGDATABASE = postgres

#Replica parameters:

#Logging parameters:

#Retention parameters:

retention-redundancy = 2

retention-window = 7

#Compression parameters:

compress-algorithm = none

compress-level = 6

[postgres@masterdb ~]$ 


并行备份


full


[postgres@masterdb ~]$ pg_probackup backup -B /backupdir --instance pg10 -b FULL -j 4

INFO: wait for pg_stop_backup()

INFO: Backup OVL360 completed

[postgres@masterdb ~]$


incremental

[postgres@masterdb ~]$ pg_probackup backup -B /backupdir --instance pg10 -b page  -j 6

INFO: wait for LSN 0/B000028 in archived WAL segment /backupdir/wal/pg10/00000002000000000000000B

INFO: wait for pg_stop_backup()

INFO: Backup OVL3BK completed

[postgres@masterdb ~]$ 

[postgres@masterdb ~]$ 

[postgres@masterdb ~]$ pg_probackup show -B /backupdir --instance pg10 

===============================================================================================================================

 Instance    ID      Recovery time        Mode    WAL      Current/Parent TLI    Time    Data    Start LSN    Stop LSN   Status  

===============================================================================================================================

 pg10        OVL3BK  2017-09-01 12:33:24  PAGE    ARCHIVE    2 / 1                 6s  4417kB   0/B000028    0/C0000F0   OK      

 pg10        OVL360  2017-09-01 12:30:11  FULL    ARCHIVE    2 / 1                13s    31MB   0/9000060    0/9000198   OK      

 pg10        OVKYME  2017-09-01 10:51:56  PAGE    ARCHIVE    1 / 0                 8s  4407kB   0/4000028    0/50000F0   OK      

 pg10        OVKYC7  2017-09-01 10:45:57  FULL    ARCHIVE    1 / 0                17s    31MB   0/2000060    0/2000198   OK      

[postgres@masterdb ~]$ 



restore


[postgres@masterdb ~]$ pg_probackup restore -B /backupdir --instance pg10 -D /pgdata10/ -j 6

INFO: backup validation completed successfully

INFO: Restore of backup OVL3BK completed.

[postgres@masterdb ~]$ pg_probackup show -B /backupdir --instance pg10 -D /pgdata10

===============================================================================================================================

 Instance    ID      Recovery time        Mode    WAL      Current/Parent TLI    Time    Data    Start LSN    Stop LSN   Status  

===============================================================================================================================

 pg10        OVL3BK  2017-09-01 12:33:24  PAGE    ARCHIVE    2 / 1                 6s  4417kB   0/B000028    0/C0000F0   OK      

 pg10        OVL360  2017-09-01 12:30:11  FULL    ARCHIVE    2 / 1                13s    31MB   0/9000060    0/9000198   OK      

 pg10        OVKYME  2017-09-01 10:51:56  PAGE    ARCHIVE    1 / 0                 8s  4407kB   0/4000028    0/50000F0   OK      

 pg10        OVKYC7  2017-09-01 10:45:57  FULL    ARCHIVE    1 / 0                17s    31MB   0/2000060    0/2000198   OK      

[postgres@masterdb ~]$