凌旺
(中国船舶重工集团公司第七二三研究所 江苏省扬州市 225011)
随着电力自动化与工业控制技术的持续发展,网络安全受到了各方的重点关注。传统数据库在处理日志同步问题时,尽管能够保证数据的完整性、通用性,但在处理控制系统中的单向隔离问题时,很难实现双向TCP 链路的建立,无法有效同步数据。基于此,对于实时数据库跨安全区同步设计和实现的探究有着重要意义。
基于数据代理架构的背景下,实现数据化安全区同步,各区的数据代理分别为inproxy 以及out proxy。数据库的功能与基本组件有以下特点:
(1)支持日志的接收、发送,在通信正常的情况下,能够实现数据同步;通过in proxy 对实时数据库中正在执行的日志进行获取,借助隔离链路将获取到的执行日志信息发送给out proxy,由out proxy 对执行日志的相关信息进行接收;在镜像实时数据库中执行接收到的日记信息。
(2)缓存接收发送的日志信息,由于无法同步确认实时接收发送的信息,需要将传送过来的日志信息储存;在缓存过程中,还要解决短时间内网络中断的日志信息缓存问题;若实时数据库的in proxy 无法在短时间内将执行日志信息发送出去,需要首先将执行日志信息进行缓存,等待网络恢复,直接将缓存的执行日志信息传递给out proxy;与此同时,缓存空间有一定局限,若缓存的执行日志信息超出缓存空间大小,则不对执行日志信息进行缓存;
(3)接收发送数据断面,该项功能主要负责应对在网络中断一定时间后同步相关数据信息的需求,该项功能不再依靠缓存功能对执行日志信息进行缓存,并逐步将数据恢复,而是直接对全数据断面进行同步。
(4)状态监测,该项功能主要是指监测日志的执行状况,监测实时数据库的网络状态,由于实时数据库不具备TCP 双向链路,需要借助反向隔离发送状态报告文件,实现实时状态监测功能。
(5)管理监视,若实时数据库的网络出现中断,数据信息的缓存通道堵塞,需要报告同步的各类问题,并及时通报运营维护人员开展针对性的故障处理工作。
实时数据库拥有正反双向隔离技术,在实际的应用过程中,能够产生较强的隔离效果,其具体的应用结构包括实时数据库、二区数据代理、三区数据代理、实时数据库镜像,由二区数据代理到三区数据代理存在正向隔离,由三区数据代理到二区数据代理存在反向隔离,实时数据库与二区数据代理共同构成了安全二区实时数据库镜像,与三区数据代理共同构成了安全三区。二区数据代理包含日志发送、日志发送缓存、数据断面发送、状态监测、监视预警;三区数据代理包括日志接收、日志接收缓存数据、断面接收状态报告、监视预警。此外,实时数据库还存在单正向隔离、双向连接防火墙、单向连接防火墙等多种方案。
双向连接防火墙模式的应用场景为,不同的安全区子系统代理,通讯方式为将in proxy 到out proxy 通过TCP 链路进行建立,实现双向通信;数据的同步特点为,由于能够及时收回确认报文,可实现数据的实时同步。单向连接防火墙的应用场景为,由数据代理一区向数据代理二区进行单向连接,仅存在于数据代理一区与数据代理二区之间,代理通信方式为由in proxy 借助TCP 链路主动向out proxy 进行建立,实现双向通信;数据的同步特点为,能够及时确认报文从而实现数据的实时同步。正反双向隔离装置的应用场景为,数据代理一区或数据代理二区与数据代理三区之间,其通信代理方式为借助正向隔离将in proxy 与out proxy 建立单向TCP 链路,实现请求序列化;数据同步特点为,不能够及时追回确认报文,只能以秒为单位,将报文进行批量返回确认。正向隔离装置的应用场景为,不具备较高数据同步要求的数据代理二区与数据代理三区;代理通信方式为,借助正向隔离在in proxy 与out proxy 之间建立单向TCP 链路;数据同步特点为,不能返回确认报文,无法实现数据库同步,只能定期同步数据全断面。
对于双向通信方式需要确认各项同步操作,若确认失败,需要重新执行相应操作;对于非对称的确认和发送的通信方式,只能是非实时的,确认各批量返回的消息,确保各项操作均依照序号进行,outserver 依照借助反向隔离装置,对各序号操作进行定期确认;in server 在收到确认信息前,缓存未确认但已发送的各项信息;在收到确认后,若存在无法有效执行的操作,需要判断是否存在delete、insert 操作,若存在delete、insert 操作,由于无法二次执行delete、insert 操作,需要同步数据全断面;若不存在delete、insert操作,存在update 操作,则需要重新发送错误操作后的全部操作,由out server 重新执行;若重新发送后再次出现执行错误,需要同步数据全断面。
实时数据库具有下面几种特点:
(1)数据库的缓存空间有限,数据信息量过大,若不限制缓存空间会撑爆实时数据库;
(2)时效性较强,若网络出现长时间中断,则相关数据信息很可能被覆盖;
(3)相比于历史数据恢复,实时数据恢复具有更高的优先等级,因此需要尽快实现实时数据恢复,若单纯依靠触发机制与简单的缓存设备,很难有效实现实时数据库的快速恢复,因此,在处理故障恢复时,需要从长时故障与短时故障两方面着手,长时故障与短时故障的主要区别在于网络中断时间,通过设置相应的中断时间,可以有效区分故障类型,短时故障借助重发机制,应用缓存能够得到有效解决,长时故障需要依靠缓存机制与全断面进行解决。断面恢复是指复制各测试点的当前值,制成系统性文件,并覆盖对端的各测试点的数值;在对短时故障进行恢复作业时,存在较大的操作代价,对长时故障进行恢复作业时,所产生的断面数据量相对较小[1]。
在出现短时故障时,短时故障的恢复机制未缓存数据库的实时日志操作,设置FIFO 队列;在开展故障恢复作业时,会继续缓存当前操作,依照顺序发送线程缓存操作;在出现长时故障时,长时故障恢复机制不再缓存数据库日志,防止数据库的缓存被海量数据撑爆;在对长时故障进行恢复作业时,会获取全数据断面,为避免出现同步数据落后于当前数据的问题需要,在开始恢复作业时,应迅速进行缓存操作;由于不同带宽存在不同限制,在对全断面数据进行发送时,可首先将数据进行压缩,再进行传输,并缓存全断面数据的同步操作。
为充分解决实时数据库关键业务系统的单点故障问题,需要首先找到故障发生位置,故障有可能出现在服务与通信装置上;因此,机制在处理单点故障时,需要切换通信链路与服务;为尽快找到故障发生点并切换链路,技术人员需要在实时数据库系统的in proxy与out proxy 双机集群之间,借助通信设备建立通信链路,并将检测链路安装在out proxy 集群内部与in proxy 集群内部,借助链条反应对各条链路上的链路状态、对端服务器进行探测。在日常工作过程中,需要确保两台服务器分别处于工作状态与备用状态,保证两台服务器能够对队列状态进行同步缓存,使得备用服务器在工作服务器出现故障时,能够迅速从中断操作处开展故障处理工作[2]。
对于双向通信模式下的防火墙,out proxy 和in proxy 借助定时心跳,将通信链路状态与自身状态向对端进行定期发送;与此同时,依靠out proxy 及时返回各次数据操作结果,切换故障出现时的服务节点与通信链路。对于单向隔离装置要做到以下几点:
(1)分别借助正向隔离装置,由in proxy 向out proxy 发送心跳,由out proxy 缓存自身状态,转换为文件,并借助反向隔离装置,由out proxy 将文件传递给in proxy。
(2)实时数据库的单向隔离装置存在单向隔离属性,很难及时发现通信链路与对端服务的异常状况;基于此,发送操作日志后,应缓存日志数据信息;在对端进行收到确认后,方可删除相应的日志信息。
(3)备用机不会发送in proxy 集群的操作日志,只会对值班服务器的状态进行检测;若值班服务器出现异常,会发送未确认的缓存队列,不存在重复发送问题;若不涉及其他操作,只开展更新操作,in proxy 可以继续发送文件;若涉及到增加操作和删除操作,需要同步发断面操作。
(4)在切换通信链路时,需要切换隔离装置值班机,若出现反复切换通信链路或缓存文件堆积的情况,需要由人工介入对通信链路与缓存文件进行检查,找到具体的故障原因。
跨安全区实时数据同步软件,主要被应用于以下系统中:
(1)电力监控系统、电力调度系统,电力监控系统与电力调度系统主要依照电力安全规范,使用单向网闸将各安全区进行隔离,同步软件在该系统中的应用已有数千个案例;
(2)新能源多级监控系统,现阶段,国内各地区正大力建设新能源电站,新能源电站具有分布广的特点,这在一定程度上降低了其通信可靠性,但由于新能源电站对于安全的要求较高,而电站只具备单一的监视功能,由上级集控主站负责决策分析,因此,需要依靠跨安全区实时数据同步软件,将电站的相关文件信息传递到集控主站;
(3)地铁监控系统,该套系统的特点在于在广域网条件下,地铁监控系统具有较高的通信故障概率;若系统运行正常,则由上级系统对其进行监控;当系统出现异常运行状况,则需要下级系统能够实现综合监控,这需要监控系统中的数据具有异常恢复机制,能够实现多地点的独立工作;若依靠传统的复制方式,很难有效解决长时间故障问题,传统的日志复制方式会使得本地监视功能出现阻塞,而跨安全区实时数据不同步软件,能够大幅降低故障,恢复作业对原有的监控系统的负面影响,有着较好的应用效果[3]。
综上所述,跨安全区实时数据库同步软件在有效同步数据日志库的前提下,更好地满足了场景应用需求,解决了双向通信问题,尤其是,解决了其中的状态检测异步确认问题;使用不同的恢复机制应对短时故障与长时故障,增加了系统的可靠性。