[1] https://postgrespro.com/docs/enterprise/13/app-pgprobackup

Making backups in PAGE backup mode, performing PITR and making backups with ARCHIVE WAL delivery mode require continuous WAL archiving to be enabled.

You can use both STREAM and ARCHIVE backups for point in time recovery as long as the WAL archive is available at least starting from the time the backup was taken.

  • PTRACK增量备份模式,及incremental restore,要求initdb时--data-checksums.
  • todo stream,archive有什么区别

初始化

pg_probackup init -B $HOME/probackup
pg_probackup add-instance -B $HOME/probackup -D $HOME/pgdata2 --instance pg5433
archive_mode = on
archive_command = '"$HOME/.local/pgsql/bin/pg_probackup" archive-push -B "$HOME/probackup" --instance pg5433 --wal-file-name=%f'
# pg_ctl start

全量,及PAGE增量备份

pg_probackup backup -B $HOME/probackup --instance pg5433 -b FULL -p 5433 -d postgres
pg_probackup backup -B $HOME/probackup --instance pg5433 -b PAGE -p 5433 -d postgres
pg_probackup backup -B $HOME/probackup --instance pg5433 -b PAGE -p 5433 -d postgres --log-level-file=info
# --log-level-file默认off,打开后默认记录在-B/log
pg_probackup show -B $HOME/probackup
BACKUP INSTANCE 'pg5433'
=================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
=================================================================================================================================
pg5433 13 R2RP9H 2021-11-18 20:27:17+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/8000028 0/90000B8 OK
pg5433 13 R2RP38 2021-11-18 20:23:32+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/5000028 0/60000F0 OK
pg5433 13 R2RP1U 2021-11-18 20:22:44+08 FULL ARCHIVE 1/0 6s 23MB 16MB 1.00 0/2000028 0/30000F0 OK pg_probackup show -B $HOME/probackup --instance pg5433
pg_probackup show -B $HOME/probackup --archive

删除不需要的备份数据

pg_probackup delete -B $HOME/probackup --instance pg5433 --delete-expired
pg_probackup delete -B $HOME/probackup --instance pg5433 --delete-wal
pg_probackup delete -B $HOME/probackup --instance pg5433 --status=ERROR

恢复

pg_probackup validate -B $HOME/probackup --instance pg5433
pg_probackup restore -B $HOME/probackup --instance pg5433 -D $HOME/pgdata2-restored pg_probackup validate -B $HOME/probackup --instance pg5433 --recovery-target-time="2021-11-18 20:15:32+08"
# => ERROR: Backup satisfying target options is not found.
pg_probackup validate -B $HOME/probackup --instance pg5433 --recovery-target-time="2021-11-18 20:23:32+08"
pg_probackup validate -B $HOME/probackup --instance pg5433 --recovery-target-time="2021-11-18 20:25:32+08"
# => INFO: Backup validation completed successfully on time 2021-11-18 20:23:32+08, xid 485 and LSN 0/60000F0
pg_probackup validate -B $HOME/probackup --instance pg5433 --recovery-target-time="2021-11-18 20:35:32+08"
# => WARNING: Thread [1]: Could not read WAL record at 0/A000000
# ERROR: Thread [1]: WAL segment "/home/fang/probackup/wal/pg5433/00000001000000000000000A" is absent
# WARNING: Recovery can be done up to time 2021-11-18 20:27:17+08, xid 485 and LSN 0/90000B8
# ERROR: Not enough WAL records to time 2021-11-18 20:35:32+08 pg_probackup restore -B $HOME/probackup --instance pg5433 -D $HOME/pgdata2-restored2 --recovery-target-time="2021-11-18 20:23:32+08"

DELTA增量备份

pg_probackup backup -B $HOME/probackup --instance pg5433 -b DELTA -p 5433 -d postgres --log-level-file=info

PTRACK增量备份,要求--data-checksums

pg_probackup backup -B $HOME/probackup --instance pg5433 -b PTRACK -p 5433 -d postgres --log-level-file=info
# WARNING: This PostgreSQL instance was initialized without data block checksums. pg_probackup have no way to detect data block corruption without them. Reinitialize PGDATA with option '--data-checksums'.
# WARNING: Current PostgreSQL role is superuser. It is not recommended to run pg_probackup under superuser.
# ERROR: This PostgreSQL instance does not support ptrack
# WARNING: Backup R2TMDU is running, setting its status to ERROR pg_probackup show -B $HOME/probackup
BACKUP INSTANCE 'pg5433'
=====================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
=====================================================================================================================================
pg5433 13 R2TMDU ---- PTRACK ARCHIVE 0/0 0 0 0 1.00 0/0 0/0 ERROR
pg5433 13 R2TMDK 2021-11-19 21:20:08+08 DELTA ARCHIVE 1/1 1s 106kB 16MB 1.00 0/11000028 0/120000B8 OK
pg5433 13 R2SQBU 2021-11-19 09:47:54+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/E000028 0/F0000B8 OK
pg5433 13 R2SQAS 2021-11-19 09:47:16+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/B000028 0/C0000B8 OK
pg5433 13 R2RP9H 2021-11-18 20:27:17+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/8000028 0/90000B8 OK
pg5433 13 R2RP38 2021-11-18 20:23:32+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/5000028 0/60000F0 OK
pg5433 13 R2RP1U 2021-11-18 20:22:44+08 FULL ARCHIVE 1/0 6s 23MB 16MB 1.00 0/2000028 0/30000F0 OK

在有交易时增量备份

pgbench -i -s 10 postgres
pgbench -c 2 -T 100 -R 100 postgres
pg_probackup backup -B $HOME/probackup --instance pg5433 -b PAGE -p 5433 -d postgres --log-level-file=info
pg_probackup backup -B $HOME/probackup --instance pg5433 -b DELTA -p 5433 -d postgres --log-level-file=info
pg_probackup show -B $HOME/probackup
BACKUP INSTANCE 'pg5433'
====================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
====================================================================================================================================
pg5433 13 R2TMOZ 2021-11-19 21:26:59+08 DELTA ARCHIVE 1/1 1s 106kB 16MB 1.00 0/29000028 0/2A0000B8 OK
pg5433 13 R2TMOI 2021-11-19 21:26:42+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/27000028 0/280000B8 OK
pg5433 13 R2TMO9 2021-11-19 21:26:34+08 DELTA ARCHIVE 1/1 2s 106kB 16MB 1.00 0/24000028 0/250000B8 OK
pg5433 13 R2TMO0 2021-11-19 21:26:24+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/22000028 0/230000B8 OK
pg5433 13 R2TMNR 2021-11-19 21:26:16+08 DELTA ARCHIVE 1/1 2s 106kB 16MB 1.00 0/1F000028 0/200000B8 OK
pg5433 13 R2TMNH 2021-11-19 21:26:05+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/1D000028 0/1E0000B8 OK
pg5433 13 R2TMNA 2021-11-19 21:25:58+08 DELTA ARCHIVE 1/1 1s 106kB 16MB 1.00 0/1B000028 0/1C0000F0 OK
pg5433 13 R2TMN1 2021-11-19 21:25:50+08 PAGE ARCHIVE 1/1 2s 106kB 16MB 1.00 0/19000028 0/1A0000B8 OK
pg5433 13 R2TMMR 2021-11-19 21:25:39+08 DELTA ARCHIVE 1/1 1s 106kB 16MB 1.00 0/17000028 0/180000B8 OK
pg5433 13 R2TMM7 2021-11-19 21:25:20+08 PAGE ARCHIVE 1/1 2s 106kB 16MB 1.00 0/14000028 0/150000B8 OK
pg5433 13 R2TMDK 2021-11-19 21:20:08+08 DELTA ARCHIVE 1/1 1s 106kB 16MB 1.00 0/11000028 0/120000B8 OK
pg5433 13 R2SQBU 2021-11-19 09:47:54+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/E000028 0/F0000B8 OK
pg5433 13 R2SQAS 2021-11-19 09:47:16+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/B000028 0/C0000B8 OK
pg5433 13 R2RP9H 2021-11-18 20:27:17+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/8000028 0/90000B8 OK
pg5433 13 R2RP38 2021-11-18 20:23:32+08 PAGE ARCHIVE 1/1 1s 106kB 16MB 1.00 0/5000028 0/60000F0 OK
pg5433 13 R2RP1U 2021-11-18 20:22:44+08 FULL ARCHIVE 1/0 6s 23MB 16MB 1.00 0/2000028 0/30000F0 OK pg_probackup validate -B $HOME/probackup --instance pg5433 --recovery-target-time="2021-11-19 21:26:32+08"
pg_probackup validate -B $HOME/probackup --instance pg5433 --recovery-target-time="2021-11-19 21:26:52+08"

增量恢复,两种模式(checksum,lsn)都需要--data-checksums

pg_probackup restore -B $HOME/probackup --instance pg5433 -D $HOME/pgdata2 -I lsn
pg_probackup restore -B $HOME/probackup --instance pg5433 -D $HOME/pgdata2 -I lsn
# INFO: Running incremental restore into nonempty directory: "/home/fang/pgdata2"
# WARNING: Postmaster with pid 1405 is running in destination directory "/home/fang/pgdata2"
# INFO: Trying to read pg_control file in destination directory
# ERROR: Incremental restore is not allowed
pg_ctl -D ~/pgdata2 -l ~/repos/postgres/logfile2 stop
# waiting for server to shut down.... done
# server stopped
pg_probackup restore -B $HOME/probackup --instance pg5433 -D $HOME/pgdata2 -I lsn
# INFO: Running incremental restore into nonempty directory: "/home/fang/pgdata2"
# INFO: Trying to read pg_control file in destination directory
# ERROR: Incremental restore in 'lsn' mode require data_checksums to be enabled in destination data directory

pg_probackup的更多相关文章

随机推荐

  1. Win32窗口框架

    Win32窗口框架 WindowClass 单例,负责窗口初始化注册和取消注册: 负责提供静态方法: 放在Window类内部,方便初始化时,wndProc(HandleMsgSetup)的赋值: cl ...

  2. 自然语言处理标注工具——Brat(安装、测试、使用)

    一.Brat标注工具安装 1.安装条件: (1)运行于Linux系统(window系统下虚拟机内linux系统安装也可以) (2)目前brat最新版本(v1.3p1)仅支持python2版本运行使用( ...

  3. storm卡顿修改

    ​ 最近的webstorm越来越卡了,有时候甚至会弹出 Out of memory的窗口,提示要设置 xmx的值, 8G内存跑你这小软件还会不够用???要内存?给你,看你还会不会卡成翔! 于是果断给x ...

  4. Golang通脉之类型定义

    自定义类型 在Go语言中有一些基本的数据类型,如string.整型.浮点型.布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型. type是Go语法里的重要而且常用的关键字,type绝 ...

  5. 如何再一台电脑上配置多个tomcat同时运行

    1.配置运行tomcat 首先要配置java的jdk环境,这个就不在谢了  不懂去网上查查,这里主要介绍再jdk环境没配置好的情况下 如何配置运行多个tomcat 2.第一个tomcat: 找到&qu ...

  6. elasticsearch的索引操作

    1.创建索引(test_index) curl -XPUT "http://192.168.99.1:9200/test_index" 2.创建索引,指定分片和副本的数量 curl ...

  7. SpringCloud+RocketMQ实现分布式事务

    随着互联网公司的微服务越来越多,分布式事务已经成为了我们的经常使用的.所以我们来一步一步的实现基于RocketMQ的分布式事务.接下来,我们将要做的主题写出来. RocketMQ的分布式事务结构和说明 ...

  8. 2021.9.25考试总结[NOIP模拟61]

    终于有点阳间题了然而挂了60pts 哈哈 T1 交通 类似简单题,限制看似很复杂,但不难发现当确定一条边是否被删后会产生裙带关系,很多边会跟着自动被确定是否被删. 仔细观察可以得出这种关系会构成偶环结 ...

  9. NOIP模拟86(多校19)

    T1 特殊字符串 解题思路 \(f_{i,j}\) 表示前 \(i\) 个字符中结尾为 \(j\) 的最大贡献. 转移枚举当前位置于之前位置结尾的组合加上贡献即可. 对于边界问题,容易发现选择 1 一 ...

  10. Codeforces Round #736 (Div. 2)

    A,B,C就不说了,又被D题卡住了..... 感觉怎么说呢,就是题解中的三个提示都已经想到了,就是不知道该怎么解决.... D. Integers Have Friends 简述题意:题目要求你找一个 ...