基于SQL Server代理的地区电网AVC系统数据备份

2011-06-25 07:54白天宇肖先勇
四川电力技术 2011年5期
关键词:数据备份容灾异地

白天宇,肖先勇

(四川大学电气信息学院,四川成都 610065)

0 引言

随着电力系统自动化系统的快速发展,尤其是坚强智能电网的建设,电力系统中信息系统和相关数据系统的安全问题,已成为当前研究人员和工程技术人员共同面临的重大课题。地区电网作为直接面向用户供配电网,其自动化水平和信息系统、数据系统的安全,直接关系到供电质量和用户利益。近年来,地区电网的信息化、自动化水平得到了大幅度提高,其中,地区电网的自动电压无功控制(automatic voltage control,AVC)系统作为降低网损,提高供电质量,提高电网运行管理水平的重要手段,在各地区电网中得到了大量推广应用,如何低成本解决地区电网AVC系统的数据备份与恢复是确保系统安全的重要内容,已成为工程技术人员和研究人员的重要课题。

在实际电力自动化系统中,因人为的操作失误、系统故障或自然灾害原因造成电力数据丢失时有发生,给系统恢复、故障分析等造成极大影响,并可能引起整个电网的巨大损失。采用合理的数据备份方案,在发生事故后尽快地恢复系统正常运行,保证电网和自动化系统尽快投入运行,已成为提高电网运行水平和供电可靠性的重要环节。

在很多地区电网中,AVC系统已投入实际运行。现有AVC系统大多建立在能量管理(energy management system,EMS)系统基础上,利用电网实时数据,通过优化对电网电压无功进行协调控制,能有效降低网损,提高供电质量,为电网安全稳定运行发挥了重要作用[1]。由于AVC系统基于实时数据进行实时控制,其数据具有变化快、容量大的特点,为了保证AVC系统具有良好的容灾能力,需做好数据备份与恢复,遗憾的是,现有地区电网AVC系统往往没有对数据备份给予充分注意,如没考虑各历史数据库、实时数据库、事件库等不同数据库的具体特征,而仅采用单一备份方式,常出现日志溢出报错,造成服务器宕机,备份操作不方便等问题,针对这些问题迫切需要提出更好、更合理的数据备份方案。

在信息化时代,数据备份是保证系统安全的重要内容,国内外开展了大量研究。文献[2]提出了多磁盘数据备份方案;文献[3]对数据保护和恢复过程中的阻塞问题进行了探索;文献[4]给出了一个磁盘阵列的连续数据保护与阻塞管理的案例;文献[5]提出了一种磁盘和SAN的网络数据备份模型;文献[6]对数据库崩溃的检测及其恢复方法进行了研究;文献[7]利用数据网络结构备份和恢复临床图像数据;文献[8]提出了一种优化增量备份方案;文献[9]对数据存储和灾难恢复的自动规划技术进行了探索;文献[10]对容灾备份设计思想进行了分析。针对电力系统的实际需要,文献[11-12]从网络架构上研究电力系统的数据备份方案;文献[13]利用IBM公司的Tivoli备份软件和Oracle数据库的rman软件,提出了一种应用于南方电网EMS系统的备份方案,能满足系统新引进的时间序列数据库备份要求,解决了Oracle数据库归档日志带来的日志溢出的问题;文献[14]提出了一种异地紧急容灾备份方案;文献[15]提出了专用电力数据网的保护策略。

文章的备份方案是针对四川电网AVC系统制定的,其主流数据库是SQL Server,采用的数据库引擎是SQL Server 2005。SQL Server 2005中的SQL Server Agent模块可以对SQL Server作业集和程序指令集进行管理,而且提供定时机制,可以实现计划任务的自动执行。对四川电网AVC系统的数据库根据其各自特点进行分类,对不同类别的数据库采用不同的备份策略;编写SQL脚本程序定期清除过期日志和过期数据文件,解决日志溢出的问题;利用Windows服务器的FTP协议实现AVC系统主站和子站间的备份异地传送。作者未采用额外的备份软件,把自己编写的备份方案代码建于SQL Server Agent的架构上,从而解决了AVC系统数据备份现存的一些问题,并降低了项目成本。

1 重要概念

1.1 SQL Server代理

代理(Agent)是指对过程运行中决策或控制任务进行抽象而得到的一种具有主动行为能力的实体[10]。SQL Server代理是一个 Windows NT服务,可以自动执行制定的作业任务、监视SQL Server的运行和触发告警事件。

1.2 RPO 和RTO

·RPO(recovery point objective)可以描述为企业所能容忍的最大数据丢失量,也就是最近一次备份的时间点与灾难发生的时间点之间丢失的数据。

·RTO(recovery time objective,RTO)可以描述为企业所能容忍的最大恢复时间,也就是灾难后系统恢复正常运作的所花费的时间。

RPO和RTO的总和就是灾难后系统故障的总时间,是衡量一个系统容灾能力的两个重要指标。RPO和RTO越小,则表示系统的容灾能力越强。在理想状况下,RPO=RTO=0,即灾难发生后没有丢失任何数据,且恢复所需的时间为0,显然,这是不可能的。在设计容灾备份方案时,也不能过分追求RPO和RTO,因为RPO和RTO越小,投资成本就越大。所以,需要在考虑投资成本的情况下,控制合适的RPO和RTO来满足实际工作。

1.3 常用备份策略

SQL Server中几种常规的基本备份策略的定义和区别。

全备份:对数据库中所有使用过的数据进行备份,重建了数据库的所有数据。

日志备份:是对数据库日志实体的备份,也就是通过对数据库历史操作的备份,从而达到备份数据的目的,每次备份自上次事务日志备份后发生的所有事务。

差异备份:备份上次完全备份后所有发生变化的文件。

从数据备份时间的角度来看,全备份花费的时间最长,而在容量大、变化快的数据库中,日志备份比差异备份的备份时间要短很多。从数据恢复时间的角度来看(每种基本备份策略中都需要全备份,这里不考虑全备份),差异备份的恢复时间最短,由于日志备份的恢复需要恢复上次全备份和该全备份后所备份的所有日志备份,故恢复时间较长。

2 基于SQL Server代理的数据备份模型设计

2.1 数据备份方案整体架构

根据AVC系统备份现存的问题,可将SQL Server代理功能设计分为3个部分:(1)数据库分类备份;(2)清除过期日志和数据文件;(3)实现AVC系统主站子站间备份的异地传输。分类备份是通过数据库的功能和特点对其采用不同的备份策略,以改善RPO和RTO指标。清理过期日志和数据文件则是主要针对历史数据库繁杂的数据进行合理的处理,解决日志溢出带来的问题,且控制数据备份文件的大小,方便AVC系统主、子站间数据传输。最后则是利用FTP协议(文件传输协议)实现AVC主、子站间备份数据的相互传输,提高系统的异地容灾能力。图1为本方案的整体结构图。

图1 备份方案整体结构设计图

2.2 SQL Server代理作业集分类设计

SQL Server代理是通过对许多作业进行协调管理来实现其功能的,针对上述对数据备份策略功能的划分,在设计中形成了下面三个作业集。

2.2.1 AVC系统数据库分类备份设计

在四川电网AVC系统中,数据库用来存储和读取数据,根据其作用和特点主要分为两类。

(1)AVC系统模型数据库,主要用于存储地方电网拓扑信息、遥信和遥测信息、事故告警类型以及实时数据采集模型等。由于模型数据变更很小,该类数据库的数据随时间变化小,且数据容量较小。但这类数据库与电网实际运行和实时监控密切相关,其重要等级是最高的。所以该类数据库受RPO影响很小,但对RTO指标要求很高,一般EMS(能量管理)系统要求RTO≤15 min,采用的备份策略就要求灾难后数据恢复速度满足系统要求。

(2)AVC系统历史数据库,主用记录AVC系统的历史操作数据和历史参数设置数据等,以便用户查询历史信息、分析电网的运行情况。这类数据库数据变化快,且容量巨大,例如对于一个地级市AVC主站一个月的历史库约为10 GB。由于此类数据库数据的多变性,灾难后数据恢复较为复杂,备份时间较长,最严重的情况是在临近数据备份完成时系统故障了,即RPO就是数据库的备份周期和数据备份时间的总和。数据备份周期一般是固定的,所以优化数据备份时间是关键。通过删减过期日志和文件结合特殊的备份方式来优化历史数据库的RPO指标。

文章基于上述分类,对这两类数据库分别采用下面的备份策略。

(1)对模型数据库采用全备份和差异备份结合的方案,这种备份方案最大的特点就是灾难后备份恢复速度是最快的,只需要恢复上次全备份和最近的差异备份,尽快恢复AVC系统的实时运行,优化RTO指标。

(2)对历史数据库采用全备份和日志备份结合的方案,据上述定义知,日志备份是一种增量备份,只备份新增的事务变更。历史数据库不可能采用差异备份,因为历史库差异备份产生的备份文件很大,而且备份时间很长,会占用大量系统资源。采用这套备份方案结合删除过期日志和数据文件,节约每次备份的时间,节省了服务器系统资源,其缺点就是灾难后恢复数据时需要恢复最近一次全备份和后面所有的日志备份,恢复时间很长。历史数据库不会影响系统的正常运行,对恢复时间,即RPO指标的要求没有模型数据库高,容许在系统恢复正常后缓慢进行。

2.2.2 清除过期日志和数据文件设计

AVC系统历史数据库产生的日志文件和数据文件十分巨大,以往出现的日志溢出问题,就是指历史库的日志溢出,所以清除过期日志和数据文件是针对历史库而言的。

(1)删除过期日志的主要问题是,如何判断哪些日志文件是过期的。从上述历史数据库的备份方案知,日志备份是建立全备份基础上的,当系统进行一次全备份后,在该全备份之前的日志文件都可以视为过期的,所以在每次全备份后及时清除日志文件是安全可行的。利用作业实现自动清除过期日志比人工手动操作更方便、更可靠。

(2)庞大的历史数据库中的数据文件随着时间的推移增长很迅速,每次全备份都要把以前所有的历史数据都备份进去,这样备份时间会越来越长,严重时会影响AVC系统的正常运行。定期删减时间较久的数据文件是一种解决手段,但要保证用户在需要查询这些数据时,可以通过相应的备份文件恢复出来。所以在删减过期数据文件前,一定要确保这些数据备份的完备性。可以设定SQL Server作业半年或一年进行一次文件清理。

2.2.3 备份异地传输设计

数据备份可能会受到意外因素的破坏,例如火灾、人为操作失误、地震等,从而导致系统数据的丢失,造成不可挽回的损失。在不同站点进行异地数据备份,即异地容灾方案,可以进一步增强系统的容灾能力。

由于四川电网目前许多电力二次系统采用的直接连接存储(DAS)[10],在AVC系统中对远方站点进行在线异地备份,受到网络通信的限制,这种方案不是很理想。所以考虑在本站各自进行数据备份,当数据备份完成后将各子站的数据备份通过网络传送到主站,于是就可以实现对数据进行异地容灾的作用,主站与子站互为异地容灾服务器,这样没有附加额外的存储设备,降低了项目成本的同时又满足了AVC系统的异地备份容灾的需求。

利用网络传输数据,由于数据备份传送和AVC系统的数据采集通道采用的是同一个网络,这就必须考虑备份异地容灾不能影响到AVC系统运行数据的传输。模型数据库的数据备份很小,数量级在10 MB级上,而历史数据库的备份文件一般较大,每个月的容量高达GB数量级。而历史数据库中存在大量重复冗余信息,有很好的压缩比。针对这个问题,在备份异地传输前,对历史数据库备份方案产生的备份文件先进行压缩(压缩比约为20:1)然后再利用FTP协议将压缩文件传送到指定远端服务器上,这样就解决了带宽限制问题。

3 备份方案的实现

基于上述设计思想,采用SQL语言编写实现,然后创建代码SQL Server作业集,把代码内置于作业的脚本中,制定数据库维护计划,利用SQL Server代理统一管理作业集的运行。采用定时机制设自动执行作业集的操作,实现自动执行所制定的备份方案。

3.1 分类备份部分的实现

存储过程是一组SQL代码集,可以存储在数据库中,在需要时可以像调用函数一样来执行它。利用PRODUCE PROCEDURE创建三个存储过程分别编写上文提到的三种基本策略,即存储过程FULL_BACKUP、LOG_BACKUP 和 DIFFIERENTIAL_BACKUP。其中实现相应的备份方式,并把相应数据备份存储到指定的磁盘路径,通过xp_cmdshell指令把数据备份压缩到指定文件夹。由于程序设定AVC子站备份压缩文件所在路径即为备份上传的路径,为了保证每次只上传上次传送后新增的备份包,故每次进行备份压缩时,先把备份压缩文件复制到指定的另一个路径下,再清空RAR文件夹。下面是部分代码及其注释(这里以FULL_BACKUP的部分代码为例)。

模型数据库和历史数据库的分类备份方案通过建立SQL作业利用exec指令调用上述基本备份的存储过程,利用SQL作业的定时机制来确定备份时间让其自动执行。

3.2 删除过期日志和数据文件的实现

删除过期日志的指令主要是确定只删除过期的日志,在实现过程中也就是确定删除日志的时间一定要在全备份后。所以在维护计划作业集中,在全备份作业完成后,建立一个清除日志的作业,把该作业执行周期时间放在全备份时间完成之后,利用DUMP TRANSACTION DATABASENAME WITH NO_LOG指令清除掉日志文件。然后利用DBCC SHRINKFILE(databasename_log,1000)指令把日志文件收缩为初始化大小。

在历史数据库中删除过期的数据文件,主要是对表的删除操作。在历史库中所有表的命名方式是包含表的创建时间信息(年、月、日)的 ,利用这个特征对全表进行遍历,只保留当前时间往前推N个月(N是根据用户需要来确定)的,利用DROP TABLE指令删除其他的数据文件,这样历史数据库就只保留最近N个月的信息。

3.3 备份异地传输的实现

在Windows Server 2003中,可以利用FTP协议(文件传输协议)来传送文件。FTP协议支持双向传输,同时也是一个应用程序。所以可以通过建立作业定时调用FTP脚本来实现备份异地传输。首先建立一个批处理bat脚本文件,部分代码如下。

历史数据库和模型数据库除了基本备份方法不同外,在另外两个模块中的设计也略有不同,图2是历史数据库的备份方案作业集整体流程图,图3是模型数据库的备份方案作业集整体流程图,代码上的差异此处就不再赘述了。

4 仿真测试

图2 历史库备份方案作业集流程图

图3 模型数据库备份方案作业集流程图

为了测试该方案的合理性,在四川AVC系统中进行测试。测试主要是对比新旧方案间的备份效率和容灾能力。本节以德阳AVC系统的数据备份为例进行测试,比较了不同方案下的RPO和RTO指标。测试系统环境为:(1)主站服务器配置:CPU 4×3 GHz,内存8 G,4×146 G SAS热插拔硬盘。(2)子站服务器配置:CPU 2×2 GHz,内存4 G,2×146 G SAS热插拔硬盘。(3)工作站配置:CPU 2×2.4 GHz,内存1 G,160 G SATA硬盘。(4)交换机10/100/1 000 Mbps。测试结果如下。

表1 模型数据库RTO指标对比

表3 历史库日志文件新旧方案对比

在对RPO测试中,假定极端情况下,即在备份即将完成时发生灾难故障,则RPO中包含备份间隔周期和备份时间。备份周期是在备份策略中设定好的,所以RPO主要受备份时间的影响,这里就以备份时间来作为RPO的对比标准。由于新方案中历史库备份采用的事完全备份和日志备份结合的策略,测试中采用时间最久的完全备份时间作为新方案RPO指标的测量结果。测试中,对过期文件的处理周期是6个月,从表2中可以看出,在开始的半年内,新方案和旧方案是一样的,而6个月以后,新方案的最大RPO是15.6 min,而旧方案会随着时间推移而不断增加。

在对历史库日志文件的仿真中,设定日志文件处理周期为1个月。所以在表3中,改进后方案月份在1、4、8、12时,日志文件会自动清理并初始化为1 GB大小,只有在月份 0.5、3.5、7.5、11.5 时,日志文件才会显现出来。旧方案下的日志文件不经过处理,1年的历史库日志大约有65 GB,不仅浪费存储空间,还影响数据备份的效率。

测试结果表明:模型数据库的RTO指标控制在15 min内,符合AVC系统的要求;经过新方案对过期文件和日志文件的处理,极大节省了存储空间,解决日志溢出的问题,缩短数据灾难备份时间,提高系统容灾能力,优化了历史库的RPO指标;此外,通过备份的异地传输使系统具备了异地容灾能力,进一步保证了数据的安全性。

5 结语

提出了基于SQL Server Agent的AVC系统新的备份方案,采用数据库分类设计思想,针对具体数据库实施适合自身的备份策略,优化RTO和RPO指标。通过自动清除过期日志和数据文件,解决了项目中存在的日志溢出的问题,并优化了数据备份效率。通过FTP协议实现了AVC系统子站和主站间的备份异地传送,即异地容灾,进一步保障数据的安全。SQL Server Agent的管理实现了无人操作,备份方案自动执行,减少了人工操作带来的数据安全问题。而且,本方案未采用市场上的主流备份软件,是通过作者编写的代码实现的,降低了项目的成本。经过在四川电网AVC系统中的测试,该方案取得了良好的效果。

[1]唐茂林,庞晓艳,李旻,等.计及梯级电站的省地一体化AVC系统研究及实现方案[J].电力自动化设备,2009,29(6):119-122.

[2]Chong- Won Park,Jin-Won Park.A Multiple Disk Failure Recovery Scheme in RAID Systems[J].Journal of Systems Architecture,2004,50(4):169 -175.

[3]Weijun Xiao,Jin Ren,Qing Yang,etal.Design and Analysis of Block-Level Snapshots for Data Protection and Recovery[J].IEEE Trans.Computers,2009,58(12):1615 -1625.

[4]Weijun Xiao,Jin Ren,and Qing Yang.A Case for Continuous Data Protection at Block Level in Disk Array Storages[J].IEEE Trans.Parallel and Distributed Systems,2009,20(6):898-911.

[5]熊琦,王丽娜,王德军,等.基于磁盘和SAN的网络数据备份模型[J].计算机工程,2007,33(4):233 -235.

[6]Philip Bohannon,Rajeev Rastogi,S.Seshadri,Avi Silberschatz,and S.Sudarshan.Detection and Recovery Techniques for Database Corruption[J].IEEE Trans.Knowledge And Data Engineering,2003,15(5):1120 -1136.

[7]Brent J.Liu,M.Z.Zhou,J.Documet.Utilizing Data Grid Architecture for the Backup and Recovery of Clinical Image Data[J].Computerized Medical Imaging and Graphics,2005,29(2 -3):95 -102.

[8]Cunhua Qian,Syouji Nakamura,and Toshio Nakagawa.Optimal Backup Policies for a Database System with Incremental Backup[J].Electronics And Communications In Japan Part III- Fundament Electronic Science,2002,85(4):1-9.

[9]S.Gopisetty,E.Butler,S.Jaquet,etal.Automated Planners for Storage Provisioning and Disaster Recovery[J].IBM Journal Of Research And Development,2008,52(4 - 5):353-365.

[10]熊文.广州电网调度自动化系统容灾备份研究[J].继电器,2004,32(20):60 -61.

[11]李付亮.电力二次系统存储备份方案分析[J].继电器,2006,34(19):42 -45.

[12]万继光,詹玲.一种集群NAS网络备份系统的研究与实现[J].小型微型计算机系统,2005,26(6):905 -908.

[13]邱洪泽.共享磁盘冗余阵列在SCADA双机系统中的应用[J].电力系统自动化,2005,29(16):90 -92.

[13]余静,麦绍辉,刘立东,等.电力系统EMS数据备份方案[J].电力系统自动化,2009,33(17):101 -104.

[14]林其友,高振华,陈嘉庚.调度自动化系统紧急容灾备份方案[J].电力自动化设备,2009,29(12)98 -100.

[15]王益民,辛耀中,向力,等.调度自动化系统及数据网络的安全防护[J].电力系统自动化,2001,21(1),5 -8.

[16]王卓,殷国富.基于多代理的智能ERP研究及其在电力营销系统的应用[J].电力自动化设备,2008,28(12),88 -92.

猜你喜欢
数据备份容灾异地
泉州高速公路收费系统远程数据备份研究
海洋数据备份平台的设计和实现
程控交换机的数据备份与恢复技术分析
No.4 IDC:2019年上半年数据备份与恢复市场同比增长10.0%
关于建筑企业容灾备份系统方案的探讨
基于中兴软交换的电力通信网络容灾系统建设
推进医保异地结算 稳字当先
基于数据容灾技术在企业信息系统中的应用研究
爱立信HDBSC容灾方案的研究
如何开拓异地市场?