PG 17 增量备份功能介绍

背景

PG 17 新增了增量备份功能,可以通过 pg_basebackup --incremental=PATH_TO_MANIFEST 命令进行增量备份。

使用方法

全量备份

启动实例后,首先配置参数 summarize_wal=on 来启用增量备份。灌入一些数据,构造初始数据集

alter system set summarize_wal to on;
select pg_reload_conf();
create table t(a int);
insert into t select generate_series(1,10000);

接着使用 pg_basebackup 命令,拉出一个全量的备份集

pg_basebackup -D /data2/pg/17/inst/full_backup 

可以发现全量备份目录下基本就是数据库需要的文件,其中的 backup_manifest 文件记录了这次全量备份的文件名单。
在这里插入图片描述

增量备份 1

然后我们继续在原实例插入数据:

insert into t select generate_series(10000,20000);

然后使用增量备份功能,–incremental 指定刚刚全量备份的 manifest:

pg_basebackup --incremental=/data2/pg/17/inst/full_backup/backup_manifest -D /data2/pg/17/inst/increment_backup1/

这时候我们进入增量备份的文件目录,其大体结构和全量备份相似,只不过部分文件被替换成了 INCREMENTAL.${ORIGINAL_NAME} 形式
在这里插入图片描述

增量备份 2

然后我们再创建一张表,插入些数据

create table t2(a int);
insert into t2 values(1);
insert into t select generate_series(20001,20005);

进行第二次增量备份,基于第一次增量备份的 manifest 文件

pg_basebackup --incremental=/data2/pg/17/inst/increment_backup1/backup_manifest -D /data2/pg/17/inst/increment_backup2/

合并备份文件

使用 pg_combinebackup 工具进行备份合并,输出到 new_data 文件夹

pg_combinebackup /data2/pg/17/inst/full_backup /data2/pg/17/inst/increment_backup1/ /data2/pg/17/inst/increment_backup2/ -o /data2/pg/17/inst/new_data/

接着我们在新数据库启动实例,查询信息,发现果然已经合并完成:

postgres=# select count(*) from t;
 count 
-------
 20006
(1 row)

postgres=# select * from t2;
 a 
---
 1
(1 row)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总想玩世不恭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值