项目纪实 | 业务不停机、升级0感知!万里数据库生产环境助力操作系统升级 获客户点赞

为积极响应和落实国家、集团相关要求,某运营商省公司历时一个月将GreatDB数据库集群下Red Hat操作系统升级为BigCloud操作系统,以建立完善的IT自主可控体系,推动产业链生态发展。

源起:项目背景一览

2024年初,万里数据库接到某运营商省公司客户的需求通知:要将GreatDB 数据库集群下的所有操作系统升级为国产操作系统。于是,万里数据库项目团队立即展开前期调研准备工作,通过全面调研了解:业务系统升级前的现有环境中,生产环境使用了多套GreatDB分布式数据库集群,服务器超过20台(服务器采用x86架构,RedHat7操作系统),总数据量超过50TB,上层支撑着数十套业务系统。

02 选型:专业评估,规划最佳升级方案

经过对生产环境的全面仔细分析,万里数据库给出2套切实可行的升级方案:

一种方案是请客户提供一批新机器,部署国产操作系统后再 1:1 部署同架构的GreatDB 分布式数据库集群,然后进行数据迁移工作,最后将各业务割接至新的数据库集群;

第二种是依靠国产操作系统的升级工具,在线对操作系统进行升级,但这种方案对GreatDB分布式数据库的兼容性和稳定性来说,都是一个巨大的挑战。

方案1 VS 方案2

在这里插入图片描述

考虑到数据迁移成本及客户服务器资源紧张等多方面因素,为帮助客户实现降本增效,以最低成本完成操作系统升级工作,万里数据库经过与客户周密的讨论部署后,决定采用方案二推进升级工作。

03 挑战:正式生产环境下原地升级 数据库面临巨大挑战

由于客户无法提供大量的新服务器资源,因此本次操作系统需要原地进行升级,即在正式的生产环境中完成操作系统替换,这就要求替换过程中业务不能停机,尽可能做到应用0感知,这对GreatDB分布式数据库的高可用切换能力而言,是一项非常大的考验。

与此同时,滚动升级过程中,万里GreatDB分布式数据库集群要同时运行在两种不用的操作系统上,这对GreatDB的兼容性而言,也存在较大挑战。

04 规划:制定升级+测试完备方案 确保系统无故障

■ 升级方案

考虑到GreatDB 分布式数据库集群的特点,万里数据库决定采用滚动升级方式,分批对数据库集群中的服务器进行系统升级。滚动升级依赖于GreatDB分布式数据库强大的高可用切换能力,基本可以做到切主期间业务无感知。

GreatDB分布式数据库集群的各个组件均有冗余设计,且应用到数据库集群的链接通过F5实现负载均衡。这样一来,升级前将待升级服务器上的相关服务切换为从服务,切换成功后进行业务验证,无异常后将该服务器上的相关服务停止,然后等待系统运维人员使用系统升级工具完成系统升级。

接着,升级完成后更新相关依赖并启动数据库服务验证状态,待数据追平后再进行一次切换,将升级后的服务器切换为主节点,对外提供服务。升级后需要观察一个业务周期,一旦发现问题,即升级后的服务不能满足生产需求,则立即将主节点切换到未升级的服务器提供服务。

■ 测试方案

完备的升级前测试工作,是保障系统顺利升级的重要前提。为了保障系统顺利升级,万里数据库项目团队进行了多方面测试,包括:
1、线下搭建仿真业务环境,部署系统升级工具,验证系统升级可行性及对GreatDB 相关服务的影响,记录需要升级的环境依赖等;
2、线下进行一系列完备的测试工作准备,如功能测试、高可用测试、备份恢复测试等;
3、线上进行测试环境系统升级测试、业务功能测试、升级前后性能测试对比、高可用测试等,全面测试系统升级后是否满足业务需求。

05 升级:滚动升级七步法 完美实现操作系统升级

第一步:各项测试通过后,选取边缘业务系统作为试点,进行升级;

第二步:在割接窗口,将待升级服务器切换为从节点,关停该服务器上GreatDB的相关服务;

第三步:升级该服务器操作系统,并进行相关验证;

第四步:恢复GreatDB 相关服务,更新依赖,更改追平数据;

第五步:将原主节点回切到升级后的服务器;

第六步:观察一个业务周期,验证无异常后,下一割接窗口依次滚动升级下一台服务器操作系统;

第七步:按业务保障级别,从低到高依次对数据库集群的操作系统进行升级。

06 成果:业务不停机 升级0感知

经过为期一个月紧锣密鼓的升级筹备工作,万里数据库成功帮助客户完成GreatDB数据库集群底层操作系统的国产化升级工作,并做到了业务不停机、升级0感知,赢得客户一致好评,也为后续相关的项目实践积累了宝贵的经验。

实战工具箱 升级后,系统出现异常怎么处理?

如此大规模的变更,从安全角度肯定需要考虑如何回退。依赖于GreatDB 分布式数据库集群的冗余设计,当升级出现异常后,可以快速将服务切换至冗余节点,保证对业务的影响降至最低。

对于异常节点,首先通过操作系统升级工具进行回退,当升级工具回退失败时,通过备份冗余从节点的方式恢复异常节点作为后备手段,以保证异常节点可以正常恢复服务。

在该项目中,万里数据库成功配合该运营商客户完成了操作系统国产化改造,充分证明了公司的数据库产品、解决方案、技术服务等综合能力经受住了客户业务场景的严苛考验,进一步筑牢了万里数据库在运营商行业的市场地位。

未来,万里数据库将继续加大研发技术投入,针对客户应用场景进行产品的打磨与创新,携手生态伙伴推进多行业国产替代进程,助力数字经济高质量发展。

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

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

相关文章

基础架构服务API:降低成本,提升业务效益

基础架构服务API的应用可以显著降低企业的成本,并提升业务效益。通过使用这些API,企业可以充分利用云计算、自动化部署和资源管理等功能,从而减少了传统基础设施所需的大量投资和维护成本。这些API还提供了弹性扩展和自动化功能,使…

flutter常用库的介绍(1)

import dart:async; 是在Dart语言中用来引入Dart标准库中的 async 和 await 等异步编程相关的功能的声明。具体作用如下: 引入异步编程的功能: Dart中的 async 和 await 关键字用于编写异步代码,即可以处理非阻塞的操作,如等待I/O操作、定时器…

ABeam News | FY25 ABeam德硕大中华区入社式,飞往崭新航向!

FY25 ABeam大中华区入社式 7月1日,51名 ABeam大中华区新生在艾宾信息技术开发(上海)有限公司大连分公司(以下简称TDC)报到,我们为他们的到来准备了隆重的入社仪式,并举办了热情而又温馨的欢迎晚…

【OC】OC与MHA对比

MHA 简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提…

springboot美食分享平台-计算机毕业设计源码45429

基于Web美食分享平台的系统设计与实现 摘 要 本研究基于Spring Boot框架,设计并实现了一个Web美食分享平台,旨在为用户提供一个交流分享美食体验的社区平台。该平台涵盖了用户注册登录、美食制作方法分享发布、点赞评论互动等功能模块,致力于…

cdr捕捉点怎么设置---模大狮模型网

在 CorelDRAW 中,捕捉点(Snap Points)是一种非常有用的功能,它可以帮助你在绘制和编辑图形时对齐、定位和调整对象。以下是关于如何设置捕捉点的简要步骤: 打开和设置捕捉点: 打开捕捉点控制器: 在 CorelDRAW 的顶部菜…

C# 解析省份、城市、区域 json文件

一、json文件内容如下,(小程序里好像有用到...): 二、读取包含省份城市区域的json文件,并整理成想要的结果: string path Server.MapPath("/js"); string file System.IO.Path.Combine(path, "数据.…

JVM:SpringBoot TomcatEmbeddedWebappClassLoader

文章目录 一、介绍二、SpringBoot中TomcatEmbeddedWebappClassLoader与LaunchedURLClassLoader的关系 一、介绍 TomcatEmbeddedWebappClassLoader 是 Spring Boot 在其内嵌 Tomcat 容器中使用的一个类加载器(ClassLoader)。在 Spring Boot 应用中&#…

Python图形用户界面的文本文件加密工具

Python图形用户界面的文本文件加密工具 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x5oEvdLE-1720676762602)(https://i-blog.csdnimg.cn/direct/ddf0cd975b2d48a9a2f3b35c55e00add.png)] 设计方案 DES.py DESAlgorithm 类负责管理密钥并提供…

电焰灶:烹饪性能的深度剖析

在如今众多的厨房炉灶选择中,华火电焰灶以其独特的技术和性能吸引了不少消费者的目光。那么,华火电焰灶的综合烹饪性能究竟如何呢?让我们一起来深入探究。 首先,从火力方面来看,华火电焰灶展现出了强大的优势。其火焰强…

systemctl命令,启动服务,停止服务,查看服务状态,设置开机自启。

systemctl 是用于与 systemd 初始化系统和服务管理器进行交互的命令行工具。systemd 是许多 Linux 发行版默认的系统和服务管理器&#xff0c;它负责启动和管理系统服务。 以下是一些常用的 systemctl 命令&#xff1a; 启动服务: sudo systemctl start <service_name> …

VS2019使用C#写窗体程序技巧(1)

1、打开串口 private void button1_Click(object sender, EventArgs e){myPort cmb1.Text;mybaud Convert.ToInt32(cmb2.Text, 10);databit 8;parity Parity.None;stopBit StopBits.One;textBox9.Text "2";try{sp new SerialPort(myPort, mybaud, parity, dat…

LLMs的基本组成:向量、Tokens和嵌入

编者按&#xff1a;随着人工智能技术的不断发展&#xff0c;大模型&#xff08;语言、视觉&#xff0c;或多模态模型&#xff09;已成为当今AI应用的核心组成部分。这些模型具有处理和理解自然语言等模态输入的能力&#xff0c;推动了诸如聊天机器人、智能助手、自动文本生成等…

私域社群的组织及运营角色定位、分工

私域社群运营是一个涉及多个角色和职能的复杂过程&#xff0c;每个角色都有其特定的职责和目标。以下是一些常见角色及其职能内容的概述&#xff1a; 产品经理&#xff08;Product Manager&#xff09; 负责私域社群产品的规划、设计和迭代。理解用户需求&#xff0c;收集用户反…

开源项目的发展趋势之托管平台

引言 回溯至十五年前的求学时光&#xff0c;当我们初涉编程的浩瀚海洋&#xff0c;面对程序设计这一崭新挑战&#xff0c;曾渴望能有一份现成的源码作为启航的灯塔。然而&#xff0c;在那个时代&#xff0c;除了有限的SDK资源外&#xff0c;寻觅到高质量、可借鉴的源代码并非易…

springboot服装购物商城系统-计算机毕业设计源码35058

摘要 服装购物商城系统小程序&#xff0c;依托Spring Boot框架的强大支持&#xff0c;为用户呈现了一个功能丰富、体验流畅的在线购物平台。该系统不仅涵盖了商品展示、用户注册登录、购物车管理、订单处理、支付集成等核心购物流程&#xff0c;还引入了个性化推荐算法&#xf…

药品稳定性试验箱:确保药物有效期的关键设备

关键词&#xff1a; 药品稳定性试验箱、 药品稳定性试验模拟器、人造太阳 摘要&#xff1a;药品稳定性试验箱是制药行业重要的研究工具&#xff0c;主要用于在模拟气候环境中评估药物稳定性&#xff0c;以确定药物的有效期和影响稳定性的因素。该设备由温湿度控制系统、光照系…

【EasyExcel】根据单元格内容自动调整列宽

1.自定义Excel列宽样式策略类 import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.e…

NodeJS校园点餐系统-计算机毕业设计源码56979

摘 要 近年来&#xff0c;随着移动互联网的迅猛发展&#xff0c;微信小程序作为一种轻量级应用形式逐渐受到人们的关注和喜爱。在此背景下&#xff0c;各行各业开始向微信小程序上线他们的服务&#xff0c;其中包括餐饮行业&#xff0c;在校园内&#xff0c;学生、教职工和访客…

通用代码生成器模板体系,域对象,枚举和动词算子

通用代码生成器模板体系&#xff0c;域对象&#xff0c;枚举和动词算子 通用代码生成器或者叫动词算子式通用目的代码生成器是一组使用Java编写的通用代码生成器。它们的原理基于动词算子和域对象的笛卡尔积。它们没有使用FreeMarker和或者Velocity等现成的文件式模板引擎。而…