vb_probackup备份恢复实践
- 示例均为在Linux系统下使用Vastbase G100 V2.2 Build 10进行的备份恢复操作。
- 连接参数指定的数据库名称、端口等信息请以实际情况为准。
- vb_probackup备份任务发生错误时,备份进程并不会完全退出,并且用
vb_probackup show
命令查看备份集状态时对应记录显示为ERROR,此时需要指定backup_id,手动删除状态为ERROR的备份集。
备份
前置条件
1、开启追踪数据页变更的参数。
echo "enable_cbm_tracking = on" >> $PGDATA/postgresql.conf
2、重启数据库,使修改生效。
vb_ctl restart
3、使用vsql工具连接至数据库vastbase。
vsql -d vastbase -p 5432 -r
4、创建测试表并插入数据。
create table table_01(name text,id varchar(2));
insert into table_01 values('alice',1);
insert into table_01 values('jack',2);
insert into table_01 values('bob',3);
5、退出vsql程序。
\q
全量备份
1、初始化备份实例。
vb_probackup init -B /home/vastbase/bak
2、添加一个新的备份实例。
vb_probackup add-instance -B /home/vastbase/bak -D /home/vastbase/data/vastbase --instance vastbak
3、进行全量备份。全量备份的内容包含测试表table_01的三条数据。
vb_probackup backup -B /home/vastbase/bak --instance vastbak -b full
模拟数据丢失
1、使用vsql工具连接至数据库。
vsql -d vastbase -p 5432 -r
2、删除table_01的其中一条数据。
delete from table_01 where name = 'jack';
增量备份
1、增量备份命令如下:
vb_probackup backup -B /home/vastbase/bak --instance vastbak -d vastbase -b PTRACK
2、使用vsql工具连接至数据库vastbase。
vsql -d vastbase -p 5432 -r
3、模拟第二次丢失数据。
delete from table_01 where name = 'bob';
查看备份信息
vb_probackup show -B /home/vastbase/bak
返回结果为:
BACKUP INSTANCE 'vastbak'
=====================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
=====================================================================================================================================
vastbak 9.2 RTJUX3 2023-04-23 11:55:52+08 PTRACK STREAM 1/1 5s 259MB 16MB 1.00 0/66000028 0/660001E8 OK
vastbak 9.2 RTJUQ4 2023-04-23 11:51:43+08 FULL STREAM 1/0 12s 783MB 16MB 1.00 0/64000028 0/640001E8 OK
第一次数据恢复
1、停止数据库进程。
vb_ctl stop
2、执行恢复操作,其中-i指定的备份id是PTRACK增量备份的id。数据库将在-D指定的数据目录处进行恢复。(该数据目录无需提前创建。)
vb_probackup restore -B /home/vastbase/bak --instance vastbak -D /home/vastbase/data/backup1 -i RTJUX3
3、启动数据库。
vb_ctl start -D /home/vastbase/data/backup1
4、使用vsql工具连接至数据库vastbase。
vsql -d vastbase -p 5432 -r
5、查看表table_01的内容。
select * from table_01;
返回结果如下,表示数据库已恢复至第二次丢失数据之前。
name | id
-------+----
alice | 1
bob | 3
(2 rows)
第二次数据恢复
1、停止数据库进程。
vb_ctl stop /home/vastbase/data/backup1
2、执行恢复操作,其中-i指定的备份id是PTRACK增量备份的id。数据库将在-D指定的数据目录处进行恢复。(该数据目录无需提前创建。)
vb_probackup restore -B /home/vastbase/bak --instance vastbak -D /home/vastbase/data/backup2 -i RTJUQ4
3、启动数据库。
vb_ctl start -D /home/vastbase/data/backup2
4、使用vsql工具连接至数据库vastbase。
vsql -d vastbase -p 5432 -r
5、查看表table_01的内容。
select * from table_01;
返回结果如下,表示数据库已恢复至第一次丢失数据之前。
name | id
-------+----
alice | 1
jack | 2
bob | 3
(3 rows)
备份集合并
1、指定增量备份id,使其与父完全备份之间的所有增量备份均合并到父完全备份。
vb_probackup merge -B /home/vastbase/bak --instance vastbak -i RTJUX3
2、合并成功后,再次查看备份信息:
vb_probackup show -B /home/vastbase/bak
返回结果如下,表示合并完成:
BACKUP INSTANCE 'vastbak'
======================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
======================================================================================================================================
vastbak 9.2 RTJUX3 2023-04-23 11:55:52+08 FULL STREAM 1/0 6s 1307MB 16MB 1.00 0/66000028 0/660001E8 OK
清理备份
删除当前的备份集语法如下:
vb_probackup delete -B /home/vastbase/bak --instance=vastbak -i RTJUX3