QianBase TP如何进行物理备份

您所在的位置:网站首页 rsync全量备份 QianBase TP如何进行物理备份

QianBase TP如何进行物理备份

2023-05-05 21:24| 来源: 网络整理| 查看: 265

1qbbackrest介绍

QianBase TP使用qbbackrest进行物理备份恢复,支持全量,增量和差异备份。

2配置qbbackrest 1)拷贝文件到/usr/local/bin目录

cp /usr/local/QianBaseTP/bin/qbbackrest /usr/local/bin

2)编辑文件/etc/qbbackrest.conf 没有则创建

[global]   

repo1-path=/home/qianbase/backup/    --指定备份存储路径

log-level-console=info  --日志级别

log-level-file=debug  --日志级别

repo1-retention-full=2    --全量备份保留次数

repo1-retention-diff=2    --差异备份和增量备份保留次数

[demo]

qb1-path=/usr/local/QianBaseTP/data   --指定数据库的data路径

3)配置归档

编辑文件$QBHOME/data/qianbasetp.conf

调整下面两个参数

archive_mode = on

archive_command = 'qbbackrest --stanza=demo archive-push %p'

4)重启数据库

qctl -D ${QBHOME}/data -l ${QBHOME}/logfile restart

5)初始化 qbbackrest repository

qbbackrest --stanza=demo stanza-create --qb1-user=qianbase --qb1-port=20158

--qb1-user= --qb1-port=

6)检查配置和归档是否正确

qbbackrest --stanza=demo check --qb1-user=qianbase --qb1-port=20158

3参数说明 3.1备份

使用backup命令备份

1)全量备份 - full

复制所有的数据库文件

不依赖以前的备份 qbbackrest --stanza=demo --type=full backup

2)增量备份 - incr

只复制上次备份后变化的数据库文件

依赖其他备份来进行恢复 qbbackrest --stanza=demo --type=incr backup

3)差异备份 - diff

只复制上次全量备份后变化的数据库文件

类似于增量备份,但依赖的是最后一次全量备份 qbbackrest --stanza=demo --type=diff backup

4)备份参数

使用--start-fast=y 设置强制检查点快速启动备份,将true传递给pg_start_backup(),立即启动备份,不等待数据库自己去触发下一个检查点。

wal选项

--archive-copy  拷贝WAL到备份集

--archive-check  归档WAL检查

--archive-mode-check  对数据库实例的archive_mode的检查

--archive-timeout  单个WAL文件传输的超时时间,以秒为单位

3.2恢复

使用restore命令进行恢复

恢复参数

默认情况下,restore命令将恢复最新备份并应用在存储库中找到的所有存档 WAL 文件。

可以使用 --type 指定恢复类型,可选值如下:

default - 恢复到最后.

immediate - 恢复到最后一个一致性点.

lsn - 恢复到某一个lsn号.

name - 恢复到指定还原点.

xid - 恢复到指定事务id.

time - 恢复到指定时间戳.

preserve - 保留现有的恢复设置.

当 --type为 lsn, name, transaction ID (xid), 或 time, 还需要参数 --target 指定还原点.

--delta参数允许保留现有的数据库文件并仅根据需要进行恢复。否则需要停止数据库并从数据目录和表空间中删除所有文件。

4备份恢复示例 4.1全量备份 1)创建测试database、表和数据

Create database backup_test;

\c backup_test

Create table t1(a int,b varchar(10));

Create table t2(a int,b varchar(10));

Insert into t1 values(1,'qqq'),(2,'www'),(3,'eee'),(4,'rrr'),(5,'ttt');

Insert into t2 values(6,'aaa'),(7,'sss'),(8,'ddd'),(9,'fff'),(10,'ggg');

2)全量备份并校验备份集

qbbackrest --stanza=demo --type=full backup --qb1-user=qianbase --qb1-port=20158

qbbackrest --stanza=demo info

3)删除database

Drop database backup_test;

4)恢复数据

qctl -D ${QBHOME}/data -l ${QBHOME}/logfile stop

qbbackrest --stanza=demo --delta --type=immediate restore

5)启动数据库,退出read-only状态

qctl -D ${QBHOME}/data -l ${QBHOME}/logfile start

-----使用超户登录

qsql

select qb_wal_replay_resume();

6)查看数据恢复情况

qsql登陆数据库

\l

\c backup_test

\d

Select * from t1;

Select * from t2;

4.2增量备份 1)创建测试表和数据,并记录时间点

Create table t3(a int,b varchar(10));

Create table t4(a int,b varchar(10));

Insert into t3 values(11,'qaz'),(12,'wsx'),(13,'edc'),(14,'rfv'),(15,'tgb');

Insert into t4 values(16,'yhn'),(17,'ujm'),(18,'poi'),(19,'lkj'),(20,'mnb');

select sysdate;

Create table t5(a int,b varchar(10));

Insert into t5 values(21,'adad'),(22,'eqey'),(23,'dfsh'),(24,'vzcz'),(25,'tert');

2)增量备份并校验备份集

qbbackrest --stanza=demo --type=incr backup --qb1-user=qianbase --qb1-port=20158

qbbackrest --stanza=demo info

3)删除新建的表t4

Drop table t4;

4.2.1指定时间点恢复 1)停止数据库,指定时间点进行恢复

qctl -D ${QBHOME}/data -l ${QBHOME}/logfile stop

qbbackrest --stanza=demo --delta --type=time --target="" restore

 

2)启动数据库,退出read-only状态

qctl -D ${QBHOME}/data -l ${QBHOME}/logfile start

-----使用超户登录

qsql

select qb_wal_replay_resume();

3)查看数据恢复情况

qsql登陆数据库

\l

\c backup_test

\d

Select * from t1;

Select * from t2;

数据恢复到了t4表insert后,此时t5还未创建

4.2.2恢复到最后一个一致性点 1)停止数据库,恢复到最后一个一致性点

qctl -D ${QBHOME}/data -l ${QBHOME}/logfile stop

qbbackrest --stanza=demo --delta --type=immediate  restore

 2)启动数据库,退出read-only状态

qctl -D ${QBHOME}/data -l ${QBHOME}/logfile start

-----使用超户登录

qsql

select qb_wal_replay_resume();

 3)查看数据恢复情况

qsql登陆数据库

\l

\c backup_test

\d

Select * from t1;

Select * from t2;

 

数据已全部恢复



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3