openGauss训练营学习实践–物理备份恢复实测
2021年9月12日-9月13日经过两个半天的训练营学习,对openGauss的整体架构及数据库有了较深的理解,学习之后通过虚拟机也进行了数据库的安装部署实训,数据库最基础的备份恢复能力是我比较关注的,本次学习之后特别对openGauss数据库的物理备份恢复做了实际测试,测试之前对openGauss的备份恢复能力做个简单回顾和总结:
数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全,openGauss数据库支持两种备份恢复类型、多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。
备份与恢复类型可分为逻辑备份与恢复、物理备份与恢复。
逻辑备份与恢复
通过逻辑导出对数据进行备份,逻辑备份只能基于备份时刻进行数据转储,所以恢复时也只能恢复到备份时保存的数据。对于故障点和备份点之间的数据,逻辑备份无能为力,逻辑备份适合备份那些很少变化的数据,当这些数据因误操作被损坏时,可以通过逻辑备份进行快速恢复。如果通过逻辑备份进行全库恢复,通常需要重建数据库,导入备份数据来完成,对于可用性要求很高的数据库,这种恢复时间太长,通常不被采用。由于逻辑备份具有平台无关性,所以更为常见的是,逻辑备份被作为一个数据迁移及移动的主要手段。
物理备份与恢复
通过物理文件拷贝的方式对数据库进行备份,以磁盘块为基本单位将数据备份。通过备份的数据文件及归档日志等文件,数据库可以进行完全恢复。物理备份速度快,一般被用作对数据进行备份和恢复,用于全量备份的场景。通过合理规划,可以低成本进行备份与恢复。
当需要进行备份恢复操作时,主要从以下四个方面考虑数据备份方案。
- 备份对业务的影响在可接受范围。
- 数据库恢复效率。为尽量减小数据库故障的影响,要使恢复时间减到最少,从而使恢复的效率达到最高。
- 数据可恢复程度。当数据库失效后,要尽量减少数据损失。
- 数据库恢复成本。选择备份策略时参考的因素比较多,如备份对象、数据大小、网络配置等
话不多说,进入实际物理备份恢复测试的验证
物理全量备份恢复
实现所有对象的备份和还原
---设置数据库参数
gs_guc reload -N all -I all -c "enable_cbm_tracking=on"
---初始化备份目录
gs_probackup init -B /guassdb/data/bak
---添加备份实例
gs_probackup add-instance --instance test1 -B /guassdb/data/bak/ -D /guassdb/data/db1/
---连接数据库
gs_probackup set-config --instance=test1 -B /guassdb/data/bak/ -d postgres -p26000
---创建表test1并插入数据
Create table test1 (id int);
Insert into test1 values (1);
Insert into test1 values (2);
Select * from test1;
---数据库全量备份
gs_probackup backup -B /guassdb/data/bak/ --instance test1 -b full
---创建表test2并插入数据
Create table test2 (id int);
Insert into test2 values (1);
Insert into test2 values (2);
Select * from test2;
---数据库增量备份
gs_probackup backup -B /guassdb/data/bak/ --instance test1 -b PTRACK
---停止当前数据库
gs_om -t stop
---查看当前所有备份
gs_probackup show -B /guassdb/data/bak/
---创建新全量还原目录
mkdir /guassdb/data/testfull
---还原全量备份
gs_probackup restore -B /guassdb/data/bak/ --instance test1 -D /guassdb/data/testfull -i QX1EBS
---启动数据库
gs_ctl start -D /guassdb/data/testfull
---查看数据
Select * from test1;
Select * from test2;
物理增量备份恢复
验证数据库增量备份与恢复
---停止全被恢复数据库
gs_ctl stop -D /gaussdb/data/testfull
---查看当前所有备份
gs_probackup show -B /gaussdb/data/bak/
---创建新全量还原目录
mkdir /gaussdb/data/testappend
---还原全量备份
gs_probackup restore -B /gaussdb/data/bak/ --instance test1 -D /gaussdb/data/testappend -i QX1EJ9
---启动数据库
gs_ctl start -D /gaussdb/data/testappend
---查看数据
Select * from test1;
Select * from test2;
通过实战训练能更深入的理解相关数据库原理,后续还要不断的通过更多的实战训练来提高对openGauss的学习和理解。