业务零中断,数据零丢失|庚顿新一代双活高可用架构实时数据库为流程工业核心业务保驾护航

news2024/9/24 17:16:03

新一代双活架构高可用架构实时数据库管理系统可实现流程工业数据平台“零中断”、“零丢数”的超高可用性要求,在满足实时性要求的同时,实现断网/掉电时业务不中断、不丢数,突破传统主备架构。

随着生产生活自动化、数字化、信息化水平不断升级,能源供应侧可靠性要求越来越高,尤其发电企业,电压等级提高,生产规模扩大、生产连续性增强,实时监视、控制、管理水平日益精细化,通过海量实时数据反映系统运行状态已经成为发电企业不可或缺的管理手段。众所周知,实时数据记录着各个控制点的实时信息,采用实时数据库管理系统管理海量实时数据已经成为发电企业的不二之选。经过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系统的稳定性、可靠性,夯实数字化转型基础的同时,推进了国产化替代的伟大进程。

数字化转型时代需要深度管理和挖掘更有价值的数据,因此新一代双活高可用实时数据库为后期业务系统扩展、功能完善提供了更加先进、安全、可靠的数据基础支撑,是进一步释放数据“倍增效应”的前提条件,促进了数据资产化创造显著经济效益的进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉树或者多叉树直径问题

原题链接:543. 二叉树的直径 - 力扣(LeetCode) 题目描述: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 什么是任意两点路径…

ChatGPT来了不用慌,广告人还有这个神器在手

#ChatGPT能取代广告人吗,#ChatGPT会抢走你的工作吗?#ChatGPT火了,会让营销人失业吗?自ChatGPT爆火以来,各种专业or非专业文章不停给广告人强加焦虑,但工具出现的意义,更多在于提效而非替代&…

BetaFlight统一硬件配置文件研读之timer命令

BetaFlight统一硬件配置文件研读之timer命令 1. 源由2. 代码分析3. 实例分析4. 配置情况4.1 AFn配置查表4.2 timer4.3 timer show4.4 timer pin list 5. 参考资料 统一硬件配置文件的设计是一种非常好的设计模式,可以将硬件和软件的工作进行解耦。 1. 源由 cli命令…

某程序员哀叹:二本计算机,4年开发,年包才40多万。二本真的不如985/211吗?

前段时间,某职场论坛上有人发了一个帖子,发帖人问:为什么大家工资那么高,三五年都六七十万了?我二本计算机专业,四年前端开发,找个年包40万多点就顶头了。 原贴如下: 有网友表示楼主…

【Docker】Docker上篇

文章目录 一、认识Docker1、Docker出现的背景2、Docker的历史3、虚拟机技术与容器技术4、容器比虚拟机快的原因5、对Devops层面的影响 二、Docker的安装的原理1、核心名词2、安装Docker(for Linux)3、配置阿里云镜像加速4、Run的流程和Docker原理 三、Do…

phoenix使用(一)之全局索引的使用

索引使用 1.1. 全局索引(Global Indexing) 名词解释: 全局索引,适用于读多写少的业务场景。使用Global indexing在写数据的时候开销很大,因为所有对数据表的更新操作(DELETE, UPSERT VALUES and UPSERT SEL…

chatgpt软件 - chatbox

文章目录 打开github 进入chatgpt官方要记得登录!!点击头像将key命名:安装chatbox下面就可以开始使用啦!! 打开github https://github.com/Bin-Huang/chatbox 特性: 更自由、更强大的 Prompt 能力数据存储…

看了这13个案例,我总算又get到了企业级无代码

企业级无代码为何面向软件公司的研发团队? 哪些人能在企业级无代码旅程中获益? 如何找到实践的切入点? 如何开展规模化的交付实践? 如何快速组建企业级无代码开发团队? ...... 近期smardaten从组织创新、技术创新…

OCC的拓扑基础数据结构

在OpenCASCADE中,提供了一系列的拓扑基础数据结构,用于表示几何实体的拓扑结构,其中最基本的是TopoDS_Shape。下面是一些其他常用的拓扑数据结构: TopoDS_TCompound:代表了复合实体,即由多个几何实体组合而成的实体,可以包含任意数量和类型的其他几何实体。 TopoDS_TCom…

【消费战略方法论】认识消费者的恒常原理(三):消费者刺激反馈原理

人类是一种高度智能的生物,而所谓智能的核心在于其理解世界的能力,而理解世界的过程中必然伴随着感知和反应。人的刺激反馈机制就是在这个过程中发挥着重要的作用。 刺激反馈机制是一种生物学的反应现象,它指的是人体对外界刺激的感知与反应…

vue使用富文本和打印 egg使用ctx.getFileStream进行文件上传

vue2使用富文本 安装 npm install vue-quill-editor --save全局引入(main) import VueQuillEditor from vue-quill-editor//调用编辑器 // 样式 import quill/dist/quill.core.css import quill/dist/quill.snow.css import quill/dist/quill.bubble.css Vue.use(VueQuillE…

【汽车电子】浅谈LIN总线

目录 1.为何使用LIN总线 2.什么是LIN总线? 3.LIN总线的主从关系 4.LIN的特点 5.LIN报文帧结构 6.LIN总线波形 7.帧类型 8.进度表 9.状态机的实现 10.总结 11.声明 1.为何使用LIN总线 在这里你可能要问“不都有CAN总线了吗?这个LIN总线又是从哪…

【JS笔记】JS操作字符串、对象、数组、时间对象、数值操作、定时器

这篇文章,主要介绍JS操作字符串、对象、数组、时间对象、数值操作、定时器。 目录 一、字符串 1.1、定义字符串 1.2、字符串方法 1.3、模板字符串 1.4、JSON字符串 二、对象操作 2.1、定义对象 2.2、对象方法 三、数组操作 3.1、定义数组 3.2、数组方法 …

【Docker_windows】安装Docker桌面版

现在如果问什么行业最火,很多人第一反应肯定就是IT。的确,这些年随着互联网的不断发展,IT热门众所周知。那么就一起来说说,IT行业里,哪些技术更热门。 What? Docker Desktop? Docker Desktop是…

SpringBoot快速回顾(分别使用注解和xml方式去声明Bean,获取Bean)

SpringBoot快速回顾(configuration注解) 1. 使用xml声明Bean1.1 创建测试实体类1.2 创建xml文件(目的:将实体类声明成Bean)1.3 测试 2. 使用注解configuration声明Bean2.1 已经声明过实体类Student2.2 定义配置类2.3 测…

Lim测试平台变量使用规则介绍

一、Lim测试平台简介 Lim测试平台是一款轻量级的接口测试平台,也是为数不多使用python作为后端接口建设的语言。 正如它的名字我们希望在开展接口测试时能够“四两拨千斤”!让用户操作更少但开展建设的效率更高。因此我们做了许多交互细节上的优化和创新…

Elasticsearch:人类语言到 ElasticSearch 查询 DSL

Elasticsearch 为开发者提供了强大的搜索功能。Elasticsearch 使用 DSL 来进行查询。对于很多从关系数据库过来的人,这个很显然不很适应。虽然我们可以使用 SQL 来进行查询,但是我们必须通过一些命令来进行转换。我们可以通过阅读文章: Elast…

SpringBoot统一功能处理(统⼀⽤户登录权限验证、统⼀异常处理、统⼀数据格式封装)

统⼀⽤户登录权限验证 1、最初的用户登录效验:在每个方法里面获取session和 session 中的用户信息,如果存在用户,那么就认为登录成功了,否则就登录失败了。 2、第二版用户登录效验:提供了统一的方法,在每个需要验证的方法中调用…

神经网络模型压缩技术—剪枝

目录 1.模型压缩定义 2.模型压缩必要性及可行性 3.模型压缩分类 3.1 主流分类 3.2 前端和后端 4.剪枝 4.1 剪枝定义 4.2 剪枝分类 4.2.1 基于粒度 4.2.2 基于是否结构化 4.2.3 基于目标 5. 结构化剪枝和非结构化剪枝 5.1 非结构化剪枝(移除单个权重或神…

【Python习题集1】Python 语言基础知识

python习题 一、实验内容二、实验总结 一、实验内容 1、运用输入输出函数编写程序,将华氏温度转换成摄氏温度。换算公式:C(F-32)*5/9,其中C为摄氏温度,F为华氏温度。 (1)源代码: ffloat(input(输入华氏温…