触发器和作业调度在水雨情数据传输中的应用

来源 :硅谷 | 被引量 : 0次 | 上传用户:congmingwangzi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]防汛水雨情数据的网络传输,尤其是通过广域网的传输,其稳定性、完整性、实时性尤其重要。通过与常用数据传输方法的比较,说明采用数据库触发器和作业调度方式传输数据的优点,分析用此方法传送水雨情数据时应考虑的几个问题,说明具体实现方法及改进措施。
  [关键词]触发器 作业调度 水雨情
  中图分类号:P4文献标识码:A 文章编号:1671-7597(2008)1010149-01
  
  一、数据库分布现状
  
  水雨情数据是防汛防旱防台工作的基础数据,对于掌握实时汛情动态、作出防汛决策、减少国家和人民生命财产损失具有重要的意义。
  近年来水雨情自动遥测系统的建设越来越普及,由于建设时间、承建单位、使用对象的不同,导致数据库结构、物理存储位置的不同。据统计,目前我市已建遥测站点140多个,市防汛办和各县防汛办水雨情数据库5个,另有人工报汛数据库1个,数据库均采用SQLSERVER 2000以上版本。数据分布于不同的数据库,给数据检索、统计、比测、传输等工作带来很大不便。如图1所示,全市6个数据库,除了为防汛应用软件提供数据外,还需要通过广域网逐级向上传送。县级数据库传至市级数据库,市级数据库传至省级数据库,最后传送至国家防汛总指挥部。
  为便于数据传输和应用,在市防汛网络中,创建一个中心数据库,用于收集全市所有的水雨情数据,并通过该数据库向省级数据库发送数据。
  


  
  二、采用触发器和作业调度方式传送数据的优点
  
  按照惯例,数据传输需要编写用于收、发数据的通讯软件。通讯软件原理虽然简单,但由于涉及数据库连接、网络通讯、数据协议等多个方面的问题,还需要考虑运行的安全性和稳定性等问题(如网络异常时确保程序不会出现异常终止和数据丢失,网络恢复正常时软件能自动恢复数据传输);在广域网上调试和运行通讯程序时,需要对远端电脑拥有足够的权限来运行EXE程序;系统重启时,要考虑等待SQLSERVER重启完毕才能运行收发软件。因此,要编写一个稳定、可靠的传输程序往往比较烦琐,需要经过反复测试和长期试用才能成功。为此,我们探索了一种通过数据库触发器和作业调度传输数据的方法。
  所谓数据库触发器,简单地说,就是指数据库发生数据插入(insert)、删除(delete)、修改(update)等操作时执行的一段SQL语句;所谓作业,就是指在规定的时间内需要执行的一段SQL语句。触发器和作业可以通过SQLSERVER企业管理器进行编辑,以文本格式存储于数据库中,由SQLSERVER自动执行。它可以克服EXE格式的通讯软件的各类弊端。而且,文本格式的代码,便于修改维护。
  
  三、实现方法
  
  (一)采用触发器和作业方式传输水雨情数据时,重点考虑三个问题
  1.确保数据的安全性和完整性。如果网络连接或远程数据库发生故障,则数据传输失败,导致整个触发器和作业的异常中止。在此情况下,应该保留待传输的数据,等故障恢复时能自动进行重传。但触发器只在数据改变时发生一次,运行失败后,SQLSERVER不再重试。因此,数据传输功能只适合于放在作业中,通过作业调度不停地得到执行。需要传输的数据应先通过触发器放入一个临时表中,传输成功后再删除临时表中的数据。
  一般情况下,一个作业由许多条SQL语句组成,作为一个事务来处理,如果中间某条SQL语句失败,则SQLSERVER回滚事务,导致作业中所有语句失败。因此数据传输应单独作为一个作业,不宜将其他功能(如字段运算、代码转换、数据备份等)跟数据传输放在同一个作业中。
  2.作业调度时间的确定。作业调度时间不宜过短或过长。过短则导致服务器频繁执行作业,加重服务器和网络的负担;过长则可能无法满足防汛调度和水雨情预警工作的需要。按照国家防总的有关规定,水雨情达到加报或预警标准的,要立即进行加报。因此,对重要的水雨情信息,应尽快向上级报送。根据防汛调度和水雨情预警需要,结合服务器负载情况,一般作业调度时间可选择在1~5分钟之间。若按3分钟调度一次作业计,考虑到遥测站自身时钟可能有3分钟延迟,则市级数据库最大延迟6分钟,省级数据库最大延迟9分钟,传至国家防总时最大延迟为12分钟。具体时间应考虑水闸、水库等工程最大可能的水位涨速、历史最大雨量情况来调整,以满足防汛工作的需要。
  3.数据库表批量处理时的安全性。在做数据库维护时,有时需要对表进行插入、修改等批量处理。当水雨情数据库比较庞大时,如果对带有触发器的数据库表进行批量处理,可能导致触发器被频繁触发,引起服务器长时间负载过重。因此,批量处理前,应考虑先停止触发器和作业的功能,待数据批量处理完毕,用SQLSERVER的查询分析器一次性执行触发器和作业的功能,最后再恢复触发器和作业,这样整体上可以大大缩短批量处理时间。
  (二)实现步骤
  一般我们都在发送端执行数据库触发器和作业调度。在SQLSERVER企业管理器中按以下步骤操作:
  1.为需要发送数据的表创建一个结构相同的临时表。
  2.创建insert触发器,将新增数据加入临时表;创建delete触发器,将数据从临时表中删除。
  3.建立连接远程数据库的链接服务器,使当前服务器能与远程服务器连接。
  4.建立一个定时执行的作业,将临时表中的数据通过链接服务器拷贝到远程服务器,并删除临时表中的记录(若拷贝语句失败,则作业自动终止,删除语句不会被执行,待发送的数据仍存在于临时表中)。
  (三)改进方法
  以上方法只说明了实现传输的基本方法。具体实践时,可以进一步完善,因为按以上方法,每个表都需要创建一个临时表,表多时比较麻烦。可以将上述传送数据的方法,改成传送SQL语句。按以下方法,在发送端仅需创建一个临时表:
  1.在各个触发器中,为每一条记录生成一条对应的SQL语句,并放入临时表中(在Insert触发器中,生成insert语句;在Delete触发器中,生成delete语句)。
  2.在作业中,将临时表中的SQL语句传到远程服务器。
  3.远程服务器创建一个作业,定时执行收到的SQL语句。
其他文献
[摘要]以单片机为基础,分别以轿车温控系统和贮液容器温控系统为例,阐述单片机在温控系统中的应用原理。  [关键词]单片机 温度 控制  中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)1010135-01    一、单片机在贮液容器温控系统中的应用    该系统中以贮液容器温度为被控参数,蒸汽流量为控制参数,输入贮液容器冷物料的初温为前馈控制,构成前馈一反馈控制系统。发
[摘要]在了解场馆门禁系统的需求后,全面分析场馆售票和验票这两个重要环节,在借鉴现有的门禁系统的基础上提出门禁系统的设计方案。并论述门禁控制器实现安全的门票识别功能的二维条码技术及其应用。  [关键词]门禁系统 二维条码 PDF417  中图分类号:TP2文献标识码:A 文章编号:1671-7597(2008)1010132-02    出入口控制系统(Access Control System,
[摘要]通过无侧限抗压强度试验,研究了水泥掺入比和养护龄期对水泥土无侧限抗压强度的影响,并提出了具有工程实际意义的一些建议。  [关键词]水泥土 掺入比 养护龄期 无侧限抗压强度  中图分类号:TU5 文献标识码:A 文章编号:16717597(2008)1010140-01    一、引言    无侧限抗压强度是试样在无侧向压力条件下抵抗轴向压力的极限强度。无侧限抗压试验的强度值常作为土体(特别
[摘要]从不同的角度看环境的设计并对其进行阐述,论述环境设计的规则和环境设计所涉及的要素及其创新。  [关键词]环境 设计 设计要素  中图分类号:TU98 文献标识码:A 文章编号:1671-7597(2008)1010136-01    一、现代环境设计    现代园林逐渐凝结成了融功能、空间组织及形式创新为一体的现代化设计风格。一方面,设计追求良好的服务或使用功能,例如为人们漫步、休憩、聊天
本文通过对荣华二采区10
期刊