QianBase TP如何进行物理备份 |
您所在的位置:网站首页 › rsync全量备份 › QianBase TP如何进行物理备份 |
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 repositoryqbbackrest --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
Drop database backup_test;
qctl -D ${QBHOME}/data -l ${QBHOME}/logfile stop qbbackrest --stanza=demo --delta --type=immediate restore
qctl -D ${QBHOME}/data -l ${QBHOME}/logfile start -----使用超户登录 qsql select qb_wal_replay_resume();
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');
qbbackrest --stanza=demo --type=incr backup --qb1-user=qianbase --qb1-port=20158 qbbackrest --stanza=demo info
Drop table t4;
qctl -D ${QBHOME}/data -l ${QBHOME}/logfile stop qbbackrest --stanza=demo --delta --type=time --target="" restore
qctl -D ${QBHOME}/data -l ${QBHOME}/logfile start -----使用超户登录 qsql select qb_wal_replay_resume();
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
qctl -D ${QBHOME}/data -l ${QBHOME}/logfile start -----使用超户登录 qsql select qb_wal_replay_resume();
qsql登陆数据库 \l \c backup_test \d Select * from t1; Select * from t2;
数据已全部恢复 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |