新一代双活架构高可用架构实时数据库管理系统可实现流程工业数据平台“零中断”、“零丢数”的超高可用性要求,在满足实时性要求的同时,实现断网/掉电时业务不中断、不丢数,突破传统主备架构。
随着生产生活自动化、数字化、信息化水平不断升级,能源供应侧可靠性要求越来越高,尤其发电企业,电压等级提高,生产规模扩大、生产连续性增强,实时监视、控制、管理水平日益精细化,通过海量实时数据反映系统运行状态已经成为发电企业不可或缺的管理手段。众所周知,实时数据记录着各个控制点的实时信息,采用实时数据库管理系统管理海量实时数据已经成为发电企业的不二之选。经过20多年的探索实践,实时数据库管理系统已成为各类发电企业工业数据平台的必备核心基础软件。
作为数据库系统发展的分支之一,实时数据库主要应对不断更新快速变化的实时数据及具有时间限制的工业事务处理。因此,和其他通用数据库不同之处在于,实时数据库技术不止是数据库,而是工业技术、实时技术、数据库技术以及先进的IT技术深度融合的产物,是一套包括数据采集、数据存储、数据计算和数据可视化的工业数据管理系统,管理工业数据从产生到应用的全生命周期,是工业企业信息系统的工业数据管理底座,是工业数字化、信息化和智能化的基础核心软件。
实时数据库专门解决工业实时数据采集、存储和应用问题,融合各种先进技术和优化架构设计,通过提高效率来处理大规模实时数据的同时带来系统性能的提升,包括更精准的数据采集、更高的容纳率、更快的大规模查询、更好的数据压缩以及更有效率的数据应用支撑。
1.传统主备架构的局限性
实时,意味着实时数据库管理系统必须能够不间断地提供服务,而以高可用的实时数据库管理系统架构设计的核心准则建立相应的冗余机制,才能保障全天候24小时不间断运行,避免某台机器宕掉时无法正常访问实时数据库。
2.新一代双活实时数据库的优势
在所有高可用架构中,双活架构级别最高、最复杂、最难以实现。两台主机同时接收写入数据,将写入的最新数据实时同步给对方的同时,两台主机不但需要将数据进行双向复制,还必须保障极低的数据延迟、极快的故障自动恢复以及完整一致的数据质量等。所有这些动作,只能通过数据库内核的深度改造才能实现。对所有第三方高可用软件而言,实时数据库双活架构几乎是无法做到的挑战。
北京庚顿数据科技有限公司(以下简称“庚顿数据”)自主研发的原生支持双活高可用架构实时数据库管理系统,大幅提升系统容灾能力,全面提高系统可用性,保障业务持续可用,可用性指标逼近99.99%。
新一代实时数据库的创新双活架构,指两台机器同时扮演双主角,共为主机,同属从机。两台机器同时提供完整的读写服务,无需切换,可随机调用任何一台;一台主机宕机了,另一台主机继续服务。如图2所示。
需求为王。为满足特殊系统极为严苛的故障切换时间要求,从立项到完成,庚顿数据花费了两年多的时间最终完成实时数据库双活版本的研发、测试及首次应用。庚顿数据研发团队在数据库内核中增加专用于双活数据库同步的Replication模块,负责及时同步元数据、实时数据和补写的历史数据;在故障恢复时采用CheckPoint技术进行自检,定位故障期间缺失的数据并从另一节点同步恢复数据;在客户端API中与数据库建立双连接,双活数据库任一节点都可提供读写服务,当遇到网络或节点故障时,客户端可以实现毫秒级无扰切换,确保读写数据零丢失。双活架构的突出优势包括:
无缝迁移:原有应用层访问单机或主备实时数据库时,无需改动任何代码,即可自然过渡到基于双活高可用架构的实时数据库管理系统;
数据零丢失:采用连续保护模式,即CDP(Continuous Data Protection,持续数据保护)模式,可以完全消除备份窗口,RPO(Recovery Point Object 恢复点目标)为零,这是真正意义上的持续数据保护,完全满足用户“数据零丢失”需求;
业务连续:数据库双活表征两个数据库节点同时运行且同时提供服务,两个节点互为主备,服务端采用实时/历史数据双向即时同步方案,搭配客户端API采用双链路保持+故障瞬时切换方案,实现数据实时备份、实时恢复,确保了任一节点故障时,剩余节点可瞬间接管所有业务,极大缩短RTO(RecoveryTime Object 恢复时间目标),恢复时间小于1秒。
图2:新一代实时数据库管理系统双活架构示意图
3.新一代双活实时数据库实现原理
双活高可用架构下的新一代实时数据库管理系统包括数据库服务模块、应用程序编程接口(Application Programming Interface,以下简称API)模块。
新一代实时数据库服务模块包括实时数据库1以及实时数据库2,数据库划分为网络通信和数据存储,网络通信是将API的数据写入和查询请求转发给数据存储,数据存储管理所有数据。如图3所示。
下图为双活架构示意图:
图3:双活高可用架构的新一代实时数据库管理系统简化模型
应用程序可以通过API连接数据库服务模块,API在双活状态中的数据库1或者数据库2中按选主策略选取一个担任主数据库并成为优先访问数据库,同时自动将没有选取为主数据库的数据库标记为备数据库。
当正常状态下写入数据时,应用程序将写入的数据包发给API,API将数据包写入主数据库内,当写入成功时,主数据库反馈写入成功信号,主数据库向备数据库同步数据包,该过程是异步方式,故写入性能相比于单机/主备架构没有降低。
当正常状态下查询数据时,应用程序将查询请求发给API,API将查询请求发给主数据库或者备数据库,收到查询请求的数据库返回数据包给API,由于两个数据库服务之间进行了查询请求负载均衡,相当于利用了两台服务器资源提供服务,故查询性能要优于单机/主备架构。
当系统遇到故障时,需要处理各种情况。如:应用程序通过API与主备数据库同时建立连接,遇到连接故障时可实现主备切换时零延迟,省掉建立连接的时间;通过API内缓存最近数据,可实现切换后备数据库收到故障瞬间未来得及同步的数据,确保零丢数;通过双机数据库的网络通信模块之间建立双向连接,可实现数据在入库存储和数据同步并行处理,避免阻塞。
当一个服务器节点被断网/停机/断电一段时间后,再启动服务器,需要经过一系列处理达到数据一致后才能对外提供服务。
数据恢复方法包括以下步骤:
1) 故障恢复的作为备数据库,备数据库的数据存储模块先与主数据库的数据存储模块建立连接;
2) 备数据库扫描本地磁盘上存储数据在故障停止前记录的最终时间戳,获取主数据库当前时刻存储数据记录的最新时间戳,依据这两个时间戳确定需要恢复数据的时间范围;
3) 备数据库的数据存储模块从主数据库的数据存储模块获取数据并保存到本地磁盘;
4) 在备数据库恢复磁盘数据的期间,主数据库的网络通信模块缓存这期间入库的数据,待备数据库的数据存储模块恢复数据后,备数据库的网络通信模块开始接收主数据库的网络通信模块缓存数据,直到备数据库完全与主数据库保持实时同步,备数据库开始对外提供数据服务。
4.新一代双活实时数据库应用案例
目前新一代双活高可用实时数据库已经应用于某核电集团、某大型发电集团火电领域,对于开展智慧化运营、运维基础数据治理、加强知识管理、保障信息系统稳定运行等工作起到重要支撑作用。
某核电DCS系统数据中心化多子网网络结构中,每个子网内每对双机冗余通信服务器内部署一对双活高可用实时数据库,存储本子网内的全部上百万标签点的实时数据及近期热数据。上层一对双机冗余存储服务器部署一对双活高可用实时数据库,存储系统内全部需要长期存档标签点的历史数据。DCS系统内工程师站、操作员站、计算服务器、组态服务器等业务应用可以高效访问任意子网的实时数据和历史数据。如图4所示。
图4:网络结构示意图
每一对双活高可用实时数据库都经过破坏性测试,比如任意单机掉电、任意单机断网、任意单机停库、连续50次交叉掉电、连续50次交叉断网、任意网线插错等造成的系统故障。当一台实时数据库不可用时能自动进行切换,读写另一台实时数据库,保证数据库服务的可靠性,切换期间数据不丢失,切换耗时小于15ms,远小于DCS系统最小数据刷新周期,对业务连续性无任何影响。
5.新一代实时数据库的应用价值
新一代实时数据库管理系统创新融合了工业数据采集技术、中断触发技术、自动化控制技术、内存库技术、关系库技术、行列存储技术、多核并行技术、安全通信技术、高效实时检索技术等等,在国外垄断的核心技术领域突破了卡脖子重围,实现了完全的自主创新,通过用户共创,完成了大量实践和长期检验,在提高工业数据管理能力的同时,为企业数字化、信息化和智能化建设做出了重大贡献。
双活架构在实时数据库管理系统中的创新融合,进一步提升了实时数据库的高可用,为发电企业为代表的电力工业数据采集、流转、存储、分析、应用、查询的全生命周期提供了坚强的基础保障,进一步提升了数据安全管理水平及生产安全水平,为数据高级应用提供了坚强的数据底座,提升了发电DCS系统的稳定性、可靠性,夯实数字化转型基础的同时,推进了国产化替代的伟大进程。
数字化转型时代需要深度管理和挖掘更有价值的数据,因此新一代双活高可用实时数据库为后期业务系统扩展、功能完善提供了更加先进、安全、可靠的数据基础支撑,是进一步释放数据“倍增效应”的前提条件,促进了数据资产化创造显著经济效益的进程。