GaussDB(DWS)《ROACH小课堂Ⅰ测试方法篇之交互测试》

网友投稿 600 2022-05-30

Chapter one. 集群运维管理交互篇

1.1 交互manage cn——增删CN

交互对象简介

通过gs_om的managecn功能,给集群增加或者删除cn。

交互观察点

备份后,集群通过managecn增加或者删除了cn,导致cn数变更,或者ccn编号变更。对于后续增量备份或者恢复是否造成功能上的影响。

测试方法

1.  导入数据,并查询数据状态

2.  执行集群级全量备份

3.  通过managecn删除编号最小的cn

4.  执行集群级全量恢复

5.  启动集群

6.  查询备份前和恢复后数据是否一致

1.2 交互gs_replace——实例和节点修复

交互对象简介

当集群中某个节点或者实例故障,但是机器仍然可用。因为集群是主备模式的,使用gs_replace工具,通过备机rebuild主机实例,修复集群故障的实例或者节点。

交互观察点

备份后,发生实例或者节点故障,通过gs_replace修复后。观察修复后的集群,增量备份或者恢复功能是否正常。

测试方法

1.  导入数据

2.  执行备份

3.  人为故障一个实例或者单节点卸载

4.  gs_replace修复故障实例或者节点

5.  执行恢复

6.  校验数据一致性

1.3 交互warmstandby——温备

交互对象简介

当集群的单节点发生故障后,该主机无法使用,需要替换为新的主机时。通过gs_replace的warstandby工具,在不需要重建集群的情况下,平滑替换坏掉的主机。Warmstanby后,新主机的hostname和ip都会发生变化,且该主机上的数据,全部需要build重建。

交互观察点

一个集群节点的hostname或者IP改变,是否会影响已完成备份集和节点的映射关系,进而影响增量备份或者恢复的功能。

测试方法

1.  导入数据

2.  执行备份

3.  warmstanby替换集群中的一个节点

4.  执行恢复

5. 校验数据一致性

1.4 交互gs_guc——参数设置

交互对象简介

目前GaussDB(DWS)配置文件(“postgresql.conf”、“pg_hba.conf”)中的参数默认值都是单机的配置模式。应用程序可以通过调用gs_guc来设置适合自己的参数。简而言之,通过gs_guc可以修改实例的参数配置信息。

交互观察点

备份操作能否正确备份guc参数的值。

测试方法

1.  修改guc参数并记录当前结果

2.  执行备份

3.  再次修改guc参数值

4.  执行恢复

5.  确认guc参数值是否和备份前一致

1.5 交互logcial_cluster——逻辑集群

交互对象简介

逻辑集群区别于物理集群,自定义物理集群中的多个或全部(无意义)节点作为一个逻辑上的集群。当物理集群规模较大时,划分若干逻辑集群给不同用户使用,可以有效提升物理资源的利用率,并在一定程度上做到不同业务数据隔离,eg,一个逻辑集群用于查询,一个逻辑集群用于计算。

交互观察点

备份和恢复后的数据一致性

测试方法

1. 创建逻辑集群:gs_lcctl -t create --name logical_cluster_roach -h hostname1,hostname2 --non-interactive

-name指定逻辑集群和对应nodegroup的名称

-h指定用来创建逻辑集群的节点hostname,用逗号分割

2. 创建逻辑集群用户和逻辑集群下的表:

GaussDB(DWS)《ROACH小课堂Ⅰ测试方法篇之交互测试》

create user roach password 'Roach@789' node group logical_cluster_roach;

set role roach password "Roach@789";

create table logical_tab1(id int) with(orientation=column) to group logical_cluster_roach;

create table logical_tab2(id int) with(orientation=column) to group logical_cluster_roach;

create table logical_tab3(id int) with(orientation=column) to group logical_cluster_roach;

insert into logical_tab1 values(generate_series(1,100));

insert into logical_tab2 values(generate_series(1,100));

insert into logical_tab3 values(generate_series(1,100));

3. 执行集群级备份:

Python3 $GPHOME/script/GaussRoach.py -t backup --media-destination /home/perfadm/media --metadata-destination /home/perfadm/meta --media-type disk --master-port 9009

4. 分别删除和插入数据给逻辑集群下的一张表:

insert into roach.logical_tab2 values(generate_series(1,100));

drop table roach.logical_tab3;

5. 执行集群恢复:

python $GPHOME/script/GaussRoach.py -t restore --media-destination /home/perfadm/media --metadata-destination /home/perfadm/meta --media-type disk --master-port 9009 --backup-key 20200930_153821 –clean

6. 启动集群:python $GPHOME/script/GaussRoach.py -t start

7. 查看逻辑集群数据恢复成功并校验数据是否和备份时一致:

select count(*) from roach.logical_tab1;

select count(*) from roach.logical_tab2;

select count(*) from roach.logical_tab3;

1.6 交互upgrade——升级

交互对象简介

使用gs_upgradectl工具,用户可以根据GaussDB(DWS)提供的新特性,决定是否对现有系统进行升级。

交互观察点

升级可能涉及系统表和数据库组件的变更。升级成功成功后,观察能否正常备份恢复。

测试方法

1.  导入数据

2.  安装老版本集群

3.  gs_upgradectl自动升级集群

4.  执行备份

5.  只能恢复

6.  数据一致性校验

1.7 交互gs_expand/gs_shrink——扩容/缩容

交互对象简介

gs_expand工具来帮助用户在业务发展和数据量增加的情况下,集群性能和存储等方面出现瓶颈后,可以使用gs_expand工具增加主机来提升集群的性能及存储;随着业务场景和数据量的变化,需要集群节点具有可扩展性以及可收缩性。GaussDB(DWS)提供了gs_shrink工具来帮助完成对数据库集群节点进行缩容操作。

交互观察点

扩容或者缩容,会改变集群的主机数和DN数,以及数据在DN上的分布。在扩容或者缩容完成后的集群上,备份恢复功能依然要能生效,且保证恢复后数据的一致性。

测试方法

1.  导入数据

2.  扩容/缩容

3.  执行备份

4.  执行恢复

5.  数据一致性校验

2   Chapter two. 存储交互篇

2.1 交互logical replication——逻辑复制

交互对象简介

逻辑复制功能描述:完成不同数据库之间的DML数据同步,低时延,支持两套集群异形,同步期间两套集群均为可读可写

逻辑复制流程:

1.主集群开启逻辑复制功能和xlog逻辑复制,两个guc参数

2.主集群创建逻辑复制槽

3.设置中间件SRD工具,连接两个不同的数据库

逻辑复制开启,并建立连接后

当主集群数据库执行DML时,记录到xlog中的DML,会被逻辑复制解码器,解码到逻辑复制槽中缓存,然后重定向输出到文件中,解码出的就是DML的sql。

SDR中间件发送该文件到需要同步的数据库集群上,由CN执行这个sql完成DML的重放,完成数据同步

交互观察点

1.逻辑复制相关GUC参数——已验证,DN上设置的参数,可以备份恢复

2.主集群创建逻辑复制槽时,在DN目录下生成的物理文件——已验证容灾不会备份

测试方法

逻辑复制:

1.guc参数打开:

gs_guc set -I all -N all -Z datanode -c 'wal_level=logical'

gs_guc set -I all -N all -Z datanode -c 'enable_slot_log = on'

2.创建逻辑复制槽:

gsql -d postgres -p [dn_port] -c "select * from pg_create_logical_replication_slot('test_logical_slot', 'mppdb_decoding');"

3.查询逻辑复制槽

execute direct on (dn_6001_6002) 'SELECT * FROM pg_replication_slots';

4.执行容灾备份恢复

5.在备集群查询相关guc参数以及创建逻辑复制槽时,DN目录下是否生成物理文件

2.2 交互foreign table——外表对接

交互对象简介

外表(external table)就像普通的表对像一样,可以select等,只是它是只读的,数据库中只保存了表结构的描述,表数据却没有存放在数据库内,而是存放在了文件系统上。当用户想偶尔使用数据库外的结构化数据时,用起外表来就非常方便,甚至比sqlldr都要方便的多。

外部表是在数据库以外的文件系统上存储的只读表,例如EXCEL、CSV等文件

交互观察点

1.容灾备份恢复是否成功——成功

2.查询外表是否存在——存在

测试方法

1.在主集群导入外表

postgres=# DROP FOREIGN TABLE IF EXISTS product_info_ext;

postgres=# CREATE FOREIGN TABLE product_info_ext(product_price integer not null,product_id char(30) not null,product_time date ,product_level char(10) ,product_name varchar(200) ,product_type1 varchar(20) ,product_type2 char(10) ,product_monthly_sales_cnt integer ,product_comment_time date ,product_comment_num integer ,product_comment_content varchar(200)) SERVER gsmpp_server OPTIONS(LOCATION 'gsfs://192.168.0.90:5000/*',FORMAT 'CSV' ,DELIMITER ',',ENCODING 'utf8',HEADER 'false',FILL_MISSING_FIELDS 'true',IGNORE_EXTRA_DATA 'true') READ ONLY LOG INTO product_info_err PER NODE REJECT LIMIT 'unlimited';

返回如下信息表示创建成功:

CREATE FOREIGN TABLE

2.执行容灾备份恢复

3.在恢复后的集群中查询外表是否存在

2.3 交互EC对接

交互对象简介

SQL on other GaussDB是Extension Connector的功能之一,支持GaussDB(DWS)集群发送SQL语句给另一个GaussDB集群执行,并获取执行结果,执行结果可以参与本地表关联查询或者入本地表或入本地文件系统。通俗来说,EC对接是指把SQL转到另一个集群中的数据库上执行

交互观察点

1.是否影响容灾功能——经评估,所需修改的配置不在备份内容中,执行容灾恢复后需要重新配置Oracle环境,且备集群不感知

测试方法

1.安装Oracle数据库,并安装相对应的对接工具

2.修改相关guc参数

3.执行容灾备份恢复,检查容灾恢复是否成功

3     Chapter three.SQL交互篇

3.1 交互PostGIS——处理地理信息系统空间型数据

交互对象简介

PostGIS Extension是PostgreSQL的空间数据库扩展,提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。

PostGIS Extension完全遵循OpenGIS规范。

交互观察点

1.是否影响容灾功能——不影响

2.容灾备份恢复后,备集群上postGIS是否可用——跨平台场景不可用,同平台可用

测试方法

1.停止集群,主集群分发postgis库文件后kill om_monitor进程,重启集群

2.执行容灾备份恢复

3.2 交互CFUNCTION——C函数

交互对象简介

Cfunction是一种c函数,是用来实现某些功能运算和完成各种特定操作的重要手段

交互观察点

1.是否影响容灾功能——不影响

2.跨平台容灾,是否生成正确的cfunc文件清单——文件清单在meta路径下

3.同平台容灾——备集群cfunction可用

测试方法

1.导入500条cunction函数

2.执行容灾全量备份恢复

3.查询备集群元数据路径下是否存在cfunc的清单(同平台验证cfunction可用性)

4.第一次全量备份结束后,再次导入300条cfunction

5.执行容灾增量备份恢复

6. 查询备集群元数据路径下是否更新cfunc的清单(同平台验证cfunction可用性)

4   Chapter four.安全交互篇

4.1 交互认证鉴权

交互对象简介

为了使集群外用户可以安全登录至集群数据库内进行查询等操作,通过cert认证,MD5认证,和trust认证,三种认证鉴权来保证。

交互观察点

1.是否影响容灾功能——不影响

2.容灾恢复后,完成备集群认证鉴权配置,验证是否可通过认证鉴权的方式登录恢复后的集群数据库内——可以

3.容灾恢复后,完成备集群认证鉴权配置,验证是否可以不通过认证鉴权方式直接登录恢复后的集群数据库——不可以

测试方法

1.主集群分别执行三种认证鉴权方式:(操作比较繁琐,整理在文档中)

2.执行容灾备份恢复

3.备集群按照《认证鉴权.txt》中的方式配置鉴权环境并检查是否配置完成后,只能通过认证鉴权登录备集群数据库

4.2 交互私有表

交互对象简介

创建具有INDEPENDENT属性的私有用户,针对该用户的对象,数据库管理员(包含初始用户和其他管理员用户)在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。

交互观察点

1.是否影响容灾功能——不影响

2.容灾恢复后,私有用户及其名下的数据是否可用——可用

测试方法

1.在主集群中创建一张私有表

1)连接postgres数据库:

gsql -d postgres -p 6000 –r

2)创建independent用户:

create user vip with independent identified by "vip1234.";

3)切换到independent用户:

set role vip password "vip1234.";

4)在independent用户下创建表并插入数据:

create table bible (id int,add text) with(orientation=column) distribute by hash(id);

insert into bible values(1008,'beijing');

2.执行容灾备份恢复:

3.在备集群查询私有用户及其名下的数据是否可用

EI企业智能 Gauss AP 数据仓库服务 GaussDB(DWS)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈对象关系映射框架Hibernate
下一篇:Redis扩展数据类型详解
相关文章