暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【测试方法】ADG测试牛刀初试

非功能之路 2021-06-10
1618

引言:

Oracle平台针对灾备和数据同步提供了几种不错的手段,其中包括OGGADG等。那么如何充分利用ADG,并保证其发挥最优性能,今天我们就来探究下针对使用了ADG的项目,该如何全面的进行非功能测试。

1OGGADG的共性与区别

Oracle平台针对灾备和数据同步提供了几种同步软件,包括:ADG,OGG,DSG,高级复制,流复制以及自主开发的基于logmnr的数据同步软件。他们各有各自的优劣,这里主要介绍最常用的ADG和OGG。

1)ADG:最常用的同城,异地灾备解决方案。物理级备份,备机不可写,传输数据为所有redo日志的更改,数据量稍大。不过从以往的使用经验来看,也不太会影响网络。除非应用对网络有很苛刻的要求。即使有,也可以通过vlan或者路由或者多网卡的方法建立网络通道,主备库完全一致。缺点是必须全库备份,且仅支持同构数据平台进行数据同步。

2)OGG:逻辑备份,主要采用特有的技术从联机日志中抽取更改项应用到备库,主备库为两个库,可以全库同步也可以同步单张表或数张表,同步速度较快,传输数据量很少,DML操作和DDL操作均支持。OGG可以支持异构平台进行数据同步。

2ADG的应用

随着Oracle ADG的出现,Oracle在读写分离的支持上又进一步了,可以在延迟很少的情况下提供读,而且不会出现复制错误或者数据不一致的问题。某银行的某系统负责全行所有客户的基本信息的查询工作,该系统特征包含以下几点:

1)数据存量非常大,系统包含若干张数据上亿的表。

2)每天访问量非常大。全行其他系统在查询客户的基本信息都需要访问该系统,日交易量上亿,峰值tps能达到4000-5000tps。

3)该系统的高频交易主要为查询交易,少量维护交易。

针对系统上述特点,同时为了提高系统所能承担的压力,决定对该系统增加一套数据库,并在两套数据库之间使用ADG进行数据的同步操作。其中一套设定为主库,该库允许进行读操作和写操作。而新增的第二套库为备库,该库只提供读服务。主库在进行了写操作后,会实时同步到备库上。

使用ADG的架构存在以下优势:

1)管理维护简单,DBA只要熟悉Dataguard的管理即可,无需再额外学习其他方面的新知识;

2)Active Dataguard Reader Farm节点是灵活可扩展的,可以在线添加或者删除节点,并且可以线性扩展而不对生产系统造成影响;

3)可以真正做到实时查询,不会因为事务造成同步阻塞,性能有保障;

4)没有数据类型的限制;

   5)高可用性, 节点的宕机都不会影响到数据库的可用性。

以上仅仅只是对ActiveDataguardActive Dataguard Reader Farm做一个简单的介绍,以下是读写分离的架构图:

3ADG非功能测试小试

     除了传统的非功能测试内容,性能测试、稳定性测试等,针对ADG的特性,我们还增加设计了以下几个方面的测试:

    1)批量交易对ADG复制效率的影响:

  • 测试场景设计:

      在最优容量的联机交易场景下,增加批量交易作为背景压力。不断减小维护类交易脚本中查询结果的时间延迟(延长脚本中等待时长,获取返回结果是否为pass),以此获得交易100%成功的最小延迟时间。并与不带批量所测的延迟时间进行比较。

  • 测试结果预期:

存在批量背景压力的情况,对ADG的复制效率基本没有影响。

  • 实际测试结果:

通过测试,我们得到在有批量背景压力下,ADG的复制延迟时间与不带批量时ADG的复制延迟时间基本相同。

  • 测试结论:

批量背景压力,不会对联机交易的ADG复制产生影响。

2ADG能否支持1个主库带动两个备库的情况:

  • 测试场景设计:

在原有两套数据库的情况下,增加一套数据库作为备库的备库,即构成一主两备的场景。在该配置下,发起最优容量的测试场景,获取维护类交易100%成功的最小延迟时间。并与一主一备的情况下的最小延迟时间进行比较。

  • 测试结果预期:

一主两备的情况下,ADG的复制效率与一主一备没有影响。

  • 实际测试结果:

通过测试,我们得到在一主两备的情况下,ADG的复制延迟时间与一主一备ADG的复制延迟时间基本相同。

  • 测试结论:

主库性能CPU无明显变化、到第一套备库的复制延迟无明显变化。

3)突发网络故障对ADG复制的影响

  • 测试场景设计:

在最优容量的联机交易场景下,模拟网络故障,获取5分钟网络不可达后恢复ADG复制恢复需要的时间。

  • 测试结果预期:

在网络不可达5分钟后,重新联网,维护类交易能达到100%正确后,即为ADG复制恢复时间,且该时间不应过长。

  • 实际测试结果:

通过测试,我们得到在2分钟内,所有维护类交易正常执行。

  • 测试结论:

ADG恢复机制完备,能够在突发状况恢复后,很快恢复自身工作。

4、小结

Oracle提供的ADG数据复制同步机制,在读写分离的支持上又进一步,可以在延迟很小的情况下提供读,同时不会出现复制错误或者数据不一致的问题。同时,ADG的高可用性能好,节点的宕机或者网络不通等情况,均不会影响到数据库自身的可用性,并能在网络恢复后,迅速恢复ADG的正常复制工作。很适用作为多套数据库之间数据同步的灾备方案使用。








文章转载自非功能之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论