数据库同城双活保障业务连续可用分析与研究论文_王燕军,杨恒翔,高阳,杨大伟,杨丽娜

数据库同城双活保障业务连续可用分析与研究论文_王燕军,杨恒翔,高阳,杨大伟,杨丽娜

王燕军 杨恒翔 高阳 杨大伟 杨丽娜

国网新疆电力有限公司信息通信公司 新疆乌鲁木齐 830000

摘要:随着电力网络的快速发展,网络的覆盖范围也逐步变大,越来越多的网元纳入各个网管系统管理,网管系统成为了运营商重要的网络运维平台,对运维和生产管理提供了全面的支撑。电网系统应当建立相应的业务连续性管理体系,确保重要业务在运营中断事件发生后快速恢复,降低或消除因重要业务运营中断造成的影响和损失,保障业务持续运营。在此要求下,电网系统数据中心的“两地三中心”建设成为保障业务连续性目标的重要手段,电网系统也为此投入大量人力和财力进行探索与实践。

关键词:数据库;同城双活保障业务;连续可用;分析与研究

1、电网系统数据库双活架构

首先在测试环境搭建了完整的GDPC数据库双活环境,至2014年12月完成相关的测试和验证工作。期间对选定的业务系统做了大量的功能和性能测试,对数据库技术和硬件做了大量极限和破坏性测试。测试结果表明DB2GDPC技术完全能够满足当前选定业务系统对数据库双活的要求。

两个机房分别部署两个pureScale成员和一个集群高速缓存设施(CF)。硬件使用IBMP750小型机,操作系统版本目前是最新的AIX7.1SP3TL4。每个pureScale成员和CF都分配一个独立的LPAR。DB2版本采用的也是目前最新的DB210.5fixpack5。SAN存储设备使用的是支持SCSI-3PR的EMCVMAX存储,两个站点之间SAN网络互通,并配置了GPFS同步复制。在应用服务器方面,一共有4个Weblogic服务器,分别部署在两个机房,每个Weblogic服务器分别连接一个pureScale成员,并配置了客户端自动重路由。

2、关键技术方案的选择与问题解决

2.1完整GDPC配置,双中心并重

DB2pureScale集群中有两个或者多个pureScale成员,两个CF。每个pureScale成员独立运行对外提供服务,但都需要与CF进行交互;两个CF互为主备,同一时间只有一个CF与pureScale成员交互,此时另一个CF作为备CF与主CF保持实时同步,当主CF出现故障可以在极短的时间内接替主CF,因此主备CF机制是保证pureScale集群连续可用的关键配置。同时,DB2从技术上也支持pureScale集群只有一个CF的配置,pureScale集群可以正常运行,但这种配置无法避免单点故障(SPOF)。

电网系统在GDPC数据库双活的实践中,通过性能压力测试观察到,只有一个CF的配置比两个CF的配置,TPS高10%以上,响应时间也更短。但是经过综合考虑,最终决定保留两个CF的配置,充分利用GDPC的优势保证业务的连续性。在GDPC架构中,与主CF位于同一个站点的pureScale成员,其与CF交互时不需要跨越站点之间的70公里距离,因此这些pureScale成员的响应时间更快。基于这个原因,在一些银行或者其他行业的双活实践中,他们从业务系统的层面对工作负载进行区分,针对性地将一部分工作负载指定到主CF所在的站点。这种方式能够带来一定优势,但需要对业务系统进行一定的改造,增加了建设成本,还限制了业务系统的适用性。

期刊文章分类查询,尽在期刊图书馆电网系统在双活的架构中,对选定的业务系统没有做任何改造,只是在Weblogic服务器的连接池配置中修改了数据库服务器IP地址和服务端口。外部业务系统发来的请求通过F5机制平均分配到4个Weblogic服务器,每个Weblogic服务器分别连接一个pureScale成员。也就是说,电网系统实现的是真正完整的GDPC同城双活。

2.2高速互联方式选择

RoCE还是Infiniband?电网系统在高速互连的方式上进行了充分验证和慎重选择。在DB210.5FP4(Cancun)版本之前,DB2GDPC只支持Infiniband方式。这种方式支持RDMA协议,最高带宽可以达到40Gb/s,但需要专用的网络设备(如MellanoxQDRInfiniband网卡)、专用的线缆以及专用的Infiniband交换机。在DB210.5FP4中,GDPC开始支持RoCE(RDMAoverconvergedEthernet,RDMA基于融合以太网)方式。这种方式同样支持RDMA,带宽可以达到10Gb/s,需要专用的网卡(如MellanoxRoCE网卡),但不需要专用的线缆和交换机,它可以使用通用的万兆以太网交换机。

2.3热点数据问题

热点数据的争用是数据库系统中的一个常见问题,在GDPC环境中由于地理分离的特殊性,这一问题可能会更加复杂,对数据库性能的影响也更加严重。IBMDB2开发实验室官方建议中提到,当业务应用中写操作占整个工作负载20%以上时,GDPC两个站点间距离不建议超过30公里。电网系统在压力测试过程中遇到了这一问题,选定的业务系统需要频繁向若干数据表中插入数据并随后进行查询,这可能导致两个或者多个pureScale成员同时向一个数据页(即数据库存储单元,一个数据页可以存放多条数据)中插入数据。这个数据页需要不断从一个pureScale成员的本地缓冲池(LBP)发送到CF的全局缓冲池(GBP)中,再从CF的全局缓冲池发送到另一个pureScale成员的本地缓冲池,而且当需要查询之前插入的数据时,这个数据页可能被另一个pureScale成员修改过,这时也需要从CF的全局缓冲池中获取。这个过程本身是一个保证事务一致性的正常处理机制,但在GDPC环境中,一半的pureScale成员与主CF不在同一个站点,每次数据页的传输都需要跨越70公里的距离。同时由于主备CF分别位于两个站点且需要进行实时同步,因此这种现象发生时数据页需要多次跨过70公里进行站点间的传输。这可能会延长响应时间,加剧latch竞争和锁等待,从而严重影响数据库系统性能。

为解决这一问题,电网的科技开发部人员创新性利用DB2的分区表功能结合pureScale中CURRENTMEMBER变量,将热点表修改为基于pureScale成员编号进行分区的分区表,并配合使用分区索引,使得每个pureScale成员只访问特定的若干个数据分区。例如,在热点数据表上以(MOD(ID,10)+MOD(CURMEM,4)x10))增加隐藏列并以此作为分区键进行分区,这样pureScale成员0处理和访问的数据都集中在数据分区0~9,成员1的数据集中在数据分区10~19,以此类推。有了这一解决方案,一个pureScale成员向数据页插入一行数据后,当它再次查询时这个数据页还在自己的本地缓冲池中并且是有效的,而不需要从CF全局缓冲池获取,也不会有其他成员争抢这个数据页,很大程度地减少数据页在pureScale成员之间以及与CF之间的传输,从而减少响应时间,避免latch竞争,提高数据库系统性能。

3、结语

数据库的安全性是指保护数据库,以防止非法用户使用所造成的数据泄露、修改或损坏。如果没有充分的安全机制.任何人都可以访问数据,存取和修改其中的数据,或是突发的物理损坏,都将造成不堪设想的数据损失。因此企业更加明确自身对数据库高可用的需求、全面而深入的了解数据库高可用实现的不同机制、不同数据库高可用方案能够达到的效果,以及需要实现数据库高可用而付出的不同投资。

参考文献:

[1]张涛.电网系统业务支撑网网管系统设计与实现[J].电子科技大学,2014.

[2]任建满.移动本地业务支撑网安全性的研究与优化策略[J].硅谷,2014,7(14):45~46.

论文作者:王燕军,杨恒翔,高阳,杨大伟,杨丽娜

论文发表刊物:《防护工程》2018年第24期

论文发表时间:2018/12/26

标签:;  ;  ;  ;  ;  ;  ;  ;  

数据库同城双活保障业务连续可用分析与研究论文_王燕军,杨恒翔,高阳,杨大伟,杨丽娜
下载Doc文档

猜你喜欢