APP下载

容灾系统日志传输软件的设计与实现

2013-08-16郭广航

关键词:容灾分部日志

郭广航

(华南师范大学美术学院,广东广州510631)

政府、金融机构、大型企业甚至高校的计算机网络系统数据和应用集中的程度越来越高,如果系统发生灾难,将造成极其严重影响:一是直接的经济收益损失;二是巨大的资金风险;三是破坏了正常的生产及应用体系.“9.11”事件、2004年东南亚海啸灾难以及“5.12”地震的发生又进一步推动了国内外各行业容灾系统的建设[1].

目前国内灾备系统主要面临如下问题[2-4]:(1)广域网文件传输要求高,由于广域网上基于TCP协议的传输延时较长,单进程无法充分利用容灾中心到省际网(二级分部)之间的带宽.而Oracle dataguard是采用单进程传输归档日志文件,在实际带宽足够的情况下,数据库归档日志仍然无法及时从二级分部传输到容灾中心.这种的单进程传输方式不仅会影响主备库的同步时间,而且没有充分利用网络带宽.国内还没有针对广域网数据库实时备份方面的产品[5-7].国际上仅有2个数据库灾备产品,一是DSG公司的RealSync;二是Quest公司的SharePlex,但上述2个软件非常昂贵.(2)各二级分部部署环境复杂,同时有HP、IBM等不同主机平台,软件环境复杂,包括HP、IBM对于底层通信的TCP接口定义不一致等.(3)生产数据传输要求高,异地数据备份软件应用于关键事务领域,对可靠性要求非常高.二级分部与总部的oralce数据库归档日志如果无法及时传到总部,数据同步将受到影响,严重的会导致二级分部数据库停顿.所以必须保证传输数据文件无差错.

1 解决思路

1.1 多线程并发文件传输

解决广域网文件传输要求高的问题,要依靠多线程文件传输.多线程传输的基本思想是在发送端(也称客户端)将要传输的文件分割为大小相当的多块,用多个线程,将这些块同时向目标服务器端发送;在服务器端的服务程序监听数据传输请求,当接到新的请求,则创建一个新的线程,与客户端的发送线程对应,接收数据,记录数据传输进程.图1是点对点文件断点续传第N块传输过程示意图.

图1 断点续传传输过程示意图Figure 1 The schematic plot of breakpoint continuingly transmission process

为了减轻对二级分部服务器的压力,不采用多进程并发传输文件的方式,而是采用单进程多线程并发传输方式.

1.2 多种源程序代码

针对部署环境复杂、各二级分部主机的操作系统版本不统一的问题,通过版本管理,不断修改源程序,开发出兼容多个小版本的日志传输软件.

由于广域网可能存在断网、传输数据错误等不稳定的情况,异地数据备份软件需要具备在异常网络环境下工作的能力.

MD5是一种单向散列算法,其全称是Message Digest Algorithm 5.只要给出一段任意长度的信息,通过该算法,可以得到一个不可逆的信息摘要MD5码.MD5码是128 bit,为了显示方便,一般采用16进制显示,为32个字节.

其基本流程如下:

(1)传输结束后,备库以只读方式打开日志文件,自行计算MD5码,该MD5码和主库报文进行对比.如果不一致,就需要重传;

(2)写SS.chk文件,该文件除了32位MD5码外,还包括2个标志位,一个为传输结束,另一个为允许登记.此时仅写传输结束标志;

(3)备库将计算的MD5码通知主库,主库重新读1次本地的日志文件,与备库MD5码比较是否一致,将比较结果通知主库;

(4)主库接到通知,向SS.chk文件写允许登记标志.

1.3 监控

容灾中心、二级分部对于异常情况的发生,必须要有及时、有效的监控.日志传输软件除了可提供容灾中心库监控外,还可向多个二级分部监控客户端、容灾中心传输软件向容灾中心监控服务器发送日志传输信息、日志恢复信息、日志清理、进程状态、报警信息等监控消息报文,它是作为二级分部端、容灾中心端容灾数据备份监控的重要依据,提供数据的准确性直接关系到监控质量.

2 容灾系统日志传输软件的实现

2.1 容灾系统日志传输软件通过多线程编程实现传输的高效率

容灾系统日志能够充分利用服务器的多CPU资源,具有很强的并发性,同时该软件能在复杂的省际广域网上运行,对通信环节的各种异常情况能进行检测、判断和处理,即使网络异常而造成停止应用,在消除异常后,软件能自动恢复工作,具有高可靠性.

容灾系统日志传输软件功能强大:(1)实时监控数据库主库日志文件产生;(2)充分利用网络带宽资源、采用可配置多线程方式、实时、快速、稳定、安全、正确的实现日志文件的传输;(3)实时监控备库接收到主库传送过来的日志文件并迅速自动恢复备库数据库;(4)实时监控主库及备库的各种相关数据信息并实现若干异常的及时告警.

容灾系统日志传输软件由服务进程与配置文件两大部分组成,其模块结构如图2.

图2 日志传输软件模块结构图Figure 2 The structural module diagram of log transmission software

容灾中心是基于Oracle Dataguard技术建设的,为了充分利用网络带宽,采用多线程并发的日志传输软件传送数据库归档日志文件.主要功能是替代Dataguard的日志文件传输与备库数据库恢复功能,此外,还增加了归档日志查询功能,使容灾中心能够及时了解主、备库日志产生的情况(图3).

图3 主、备库传输流程图Figure 3 The flow chart of transmission for the primary and backup data bases

日志传输软件主要分为2部分:(1)备库方(全国性的容灾中心)日志传输软件,其功能是:自动检查归档日志的产生,向备库指定目录传输归档日志,向备库传输主库当前归档日志信息;(2)主库方(二级分部)日志传输软件,其功能是:接收主库的日志文件,接收备库的最新归档日志信息,激发备库恢复接收的归档日志.

2.2 日志传输软件内部模块与进程

日志传输软件内部模块结构如图4所示.

图4 日志传输软件内部模块结构图Figure 4 The internal module structure for log transmission software

工作流程为:(1)在主库以等待方式检测日志文件的产生并通知comcnt进程,读取主库最新的日志信息并通知comcnt进程.(2)与备库通信,等待chksrv通知,采用多线程方式传输日志文件.(3)在备库以等待方式等待日志文件的到来;向备库登记日志文件;采集备库最新的归档日志状态,并给comsrv进程;把备库的最新信息通知给logsrv进程.(4)在备库接收regsrv的日志信息,并发送给主库;接收主库传输的日志文件;把主备库的最新信息通知给logsrv进程.(5)在备库接收comsrv和regsrv传过来的主备库最新消息,统一写到LINUX服务器数据库方.(6)运行在LINUX服务器上,用于显示日志产生、传输的情况及软件运行的情况.

2.3 主备库信息交互处理流程

2.3.1 正常情况下的传输处理流程 传输工作流程如图3所示,从①→②→③→④,检测出主库有新的归档日志文件产生,采用多线程传输、接收归档日志文件,保存在指定目录,通过Oracl命令登记该归档日志文件,由Oracl恢复.

2.3.2 恢复出错情况下的处理流程 恢复错误传输的工作流程如图3所示,从④→③→②→①,数据库恢复出错时,计算MD5码,将MD5码通知主库,主库计算MD5码,如果不一致则重新发送日志文件;如果一致,则报警提示人工处理.

2.3.3 传输超时处理流程 传输超时的流程如图3所示,从①→②→⑤,检测归档日志的产生,发送归档日志文件,当线路中断、传输超时情况下,重新发送.

2.4 监控

对全国异地数据备份系统的二级分部端的生产数据库和容灾中心端的备用数据库之间的归档日志传输、同步情况、系统资源的使用情况以及日志传输软件的运行情况进行监控.全国异地金融容灾数据备份监控系统中有一部分信息需要日志传输软件提供.

二级分部、容灾中心架构及监控软件显示界面分别如图5~图7所示.

图5 二级分部架构图Figure 5 The structure of secondary branch

图6 容灾中心架构图Figure 6 The structure of disaster tolerance center

图7 监控软件显示界面Figure 7 The display interface ofmonitoring software

容灾系统日志传输软件,采用多线程方式并行传送日志文件,充分利用网络带宽,加快传输速度.日志传输软件是建立在Oracle Dataguard的基础之上的,主要的功能是替代Oracle Dataguard的日志文件传输与备库数据库恢复功能,此外,增加了归档日志查询功能,使灾备中心能够及时了解主、备库日志产生情况.

日志传输软件主要分为3部分:备库方(容灾中心)日志传输软件、主库方(二级分部)日志传输软件和LINUX服务器上的日志监控软件.

主库方日志传输软件的功能是:自动检查归档日志的产生;向备库指定目录传输归档日志;向备库传输主库当前归档日志信息.

备库方日志传输软件的功能是:接收主库的日志文件;接收备库的最新归档日志信息;激发向备库恢复接收的归档日志.

日志监控软件的功能是:实时显示全国二级分部归档日志信息.

二级分部的准备工作包括:(1)创建日志传输软件运行用户;(2)创建日志传输软件数据库用户.

二级分部系统管理员需要分别在数据库服务器、应用服务器上为日志传输软件创建运行用户logftp,该用户的HOME目录指向共享的磁盘阵列,对数据库服务器和应用服务器开放.平时日志传输软件运行在数据库服务器上,如果数据库服务器发生故障,则通过应用服务器logftp用户启动日志传输软件.

灾备中心系统管理员需要创建日志传输软件,运行用户log_xx(xx表示二级分部,即各省灾备中心),该用户属于dba组,采用ksh.需要约600 M左右的空间.

3 结束语

基于Oracle Dataguard技术,充分利用网络带宽,建成了多线程并发传输日志的容灾系统,在容灾中心运行情况稳定,达到了预定的效果.

(1)日志传输软件的1个线程的开销仅为是1个普通ftp进程开销的1/30左右,同时能充分利用服务器的多CPU资源,具有很强的并发性,适合在广域网上并发传送日志文件.使传输性能比Oracle软件提高了10倍,保证了日志文件传输的高效率.

(2)日志传输软件引入MD5校验算法防止传输错误,减少了人工干预,保证数据库日志文件传输的可靠性.

[1]李涛,刘晓洁,曾金全,等.信息系统容灾抗毁原理与应用[M].北京:人民邮电出版社,2007.

[2]苏冠群,陶宏才.基于Linux平台的远程数据容灾系统的设计与实现[J].计算机应用,2012,32(7):2056-2058.

[3]李峰,刘晓洁,林翰翮.基于Oracle数据库的容灾系统[J].计算机工程与设计,2011,32(11):3573-3576;3581.

[4]车宇,赵奎.面向大量用户的远程备份容灾系统[J].计算机工程与设计,2011,32(11):3577-3581.

[5]陈世爵,赵奎,赵辉.文件集的逆向差异归档方法[J].计算机工程与设计,2011,32(11):3590-3593.

[6]马薇,娄雨.Oracle数据库容灾备份中的流复制技术研究[J].科技通报,2012,28(2):182-184.

[7]周云霞,赵跃龙,杨希.智能网络磁盘存储系统的容灾研究[J].计算机研究与发展,2012,49(7):1587-1592.

猜你喜欢

容灾分部日志
一名老党员的工作日志
扶贫日志
游学日志
关于正整数不含分部量2的有序分拆的几个组合双射
关于建筑企业容灾备份系统方案的探讨
基于中兴软交换的电力通信网络容灾系统建设
分部积分公式的解题技巧
关于分部积分的几点说明
基于数据容灾技术在企业信息系统中的应用研究
爱立信HDBSC容灾方案的研究