实验二十 GaussDB逻辑备份恢复实验

一、 验证数据库集群是否支持逻辑备份、恢复功能,主要包括如下:

1.支持库集的全量逻辑备份、恢复;

2.支持schema级的全量逻辑备份、恢复;

3.支持表级的全量逻辑备份、恢复。

4.支持表结构和数据分离方式的备份、恢复

二、 测试流程:

1.创建测试库、schema、表,并插入数据

2.对数据库进行库级全量逻辑备份

3.对数据库进行schema全量逻辑备份

4.对数据库进行指定表的数据+表结构、表结构、纯数据三种方式的全量逻辑备份

5.查看以上备份结果

6.清空测试库全量数据

7.分别对数据库进行指定表的数据+表结构、表结构、纯数据三种方式的全量逻辑恢复,查看恢复结果

8.对表进行schema级全量逻辑恢复,查看恢复结果

9.对数据库进行库级全量逻辑恢复,查看恢复结果

三、测试步骤:

##登陆数据库

sql 复制代码
su - Ruby
source gauss_env_file
gsql -d postgres -p 8000 -r

##创建测试库、schema、表,并插入数据

sql 复制代码
create database test_db;
\c test_db;
create schema test1;
create table test1.test(id int,name varchar2(100));
insert into test1.test values(1,'张三');
insert into test1.test values(2,'李四');
insert into test1.test values(3,'王麻子');
\q

##创建备份目录

sql 复制代码
su - Ruby
mkdir -p /home/Ruby/logic_backup/

##对数据库进行库级全量逻辑备份

sql 复制代码
gs_dump  -f /home/Ruby/logic_backup/test_db.tar -p 8000 test_db -F t 

##对数据库进行schema全量逻辑备份

sql 复制代码
gs_dump  -f /home/Ruby/logic_backup/test_db_schema_backup -p 8000 test_db -n test1 -F d 

##导出表test1.test的定义和数据,导出文件格式为文本格式

sql 复制代码
gs_dump -f /home/Ruby/logic_backup/test_db_table_backup.sql -p 8000 test_db -t test1.test -F p

##只导出表test1.test的数据,导出文件格式为tar归档格式。

sql 复制代码
gs_dump -f /home/Ruby/logic_backup/test_db_table_data_backup.tar -p 8000 test_db -t test1.test -a -F t

##只导出表test1.test的定义,导出文件格式为目录归档格式。

sql 复制代码
gs_dump -f /home/Ruby/logic_backup/test_db_table_def_backup -p 8000 test_db -t test1.test -s -F d

##查看以上备份结果

sql 复制代码
cd /home/Ruby/logic_backup/
ll

##清空测试库全量数据

sql 复制代码
gsql -d postgres -p 8000 -r
\c test_db;
truncate table test1.test;
\q

##恢复test1.test数据

sql 复制代码
gs_restore /home/Ruby/logic_backup/test_db_table_data_backup.tar -p 8000 -d test_db
sql 复制代码
gsql -d postgres -p 8000 -r
\c test_db;

##验证恢复

sql 复制代码
select * from test1.test;
sql 复制代码
drop table test1.test;
\q

##恢复test1.test表结构

sql 复制代码
gs_restore /home/Ruby/logic_backup/test_db_table_def_backup -p 8000 -d test_db
sql 复制代码
gsql -d postgres -p 8000 -r
\c test_db;

##验证恢复

sql 复制代码
select * from test1.test;
sql 复制代码
drop table test1.test;
\q

##恢复test1.test的表结构和数据

sql 复制代码
gsql -f /home/Ruby/logic_backup/test_db_table_backup.sql -p 8000 -d test_db

##验证恢复

sql 复制代码
gsql -d test_db -p 8000 -r
select * from test1.test;
sql 复制代码
drop table test1.test;
purge recyclebin;
drop schema test1;
\q

##恢复schema test1;

sql 复制代码
gs_restore /home/Ruby/logic_backup/test_db_schema_backup -p 8000 -d test_db

##验证恢复

sql 复制代码
gsql -d test_db -p 8000 -r
select * from test1.test;
sql 复制代码
\c postgres
drop database test_db;
create database test_db;
\q

##恢复数据库test_db;

sql 复制代码
gs_restore /home/Ruby/logic_backup/test_db.tar -p 8000 -d test_db;

##验证恢复

sql 复制代码
gsql -d test_db -p 8000 -r
\l+
select * from test1.test;

##进行整个实例备份

sql 复制代码
gs_dumpall -p 8000 -f /home/Ruby/logic_backup/all_backup.sql 
sql 复制代码
gsql -d test_db -p 8000 -r
\l

##删除除了系统库之外的所有库

sql 复制代码
drop database huawei;
drop database jiangshifeng;
drop database perfdb;
drop database pg_test;
drop database test_db;

##进行整个实例恢复

sql 复制代码
gsql -f /home/Ruby/logic_backup/all_backup.sql -p 8000 -d postgres

##验证恢复

sql 复制代码
gsql -d test_db -p 8000 -r
\l
select * from test1.test;
相关推荐
逐米时代39 分钟前
智能招聘与人岗匹配:可解释匹配让录用依据有迹可循
大数据·数据库·人工智能
承渊政道39 分钟前
KES专业技能包发布:覆盖数据库开发、迁移与运维全流程
运维·数据库·gitee·数据库开发·金仓数据库
IvorySQL1 小时前
PostgreSQL 日报| RI 快速路径并发读取缺陷(8 月 13 日)
数据库·postgresql
highreport2 小时前
HighReport报表工具定时调度和邮件定时发送
运维·服务器·数据库
01_ice2 小时前
数据库基础
数据库
deepdata_cn2 小时前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴2 小时前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh2 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean2 小时前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
霸道流氓气质2 小时前
RedLock:Redis 分布式锁的高可用方案
数据库·redis·分布式