数据库高可用 | 行业巨头不告诉你的“零停机”秘密!
ccwgpt 2024-11-27 12:17 30 浏览 0 评论
高可用是数据库系统的基本需求,也是数据库技术实现的难点之一。但对于有些行业来说,“零停机”,是刚需!
比如半导体行业,停机哪怕一分钟都可能造成高达数万美元的直接经济损失;比如航空业,航班调度系统一旦出现故障,成千上万的旅客行程将受到影响,航空公司可能要面临天文数字的赔偿;再比如医疗行业,停机可能直接关系着患者的生命安全!
那么,支撑这些尖端产业的数据库是如何实现近乎神话般的“零停机”的呢?
要理解这一奇迹背后的奥秘,我们必须首先识别并解决影响数据库可靠性的几个常见问题:
问题1:数据库高可用架构以及灾备架构不完善
问题2:数据库运行性能及稳定性问题
问题3:故障应急处理缺乏规范流程和方案
问题4:缺少高效运维体系
问题5:缺少主动式隐患梳理及预防
......
针对这些普遍问题,中亦科技经过多年技术与经验积累,总结出以下关键点!
高可用架构与灾备
坚固基石,方能抵御风暴
许多企业的数据库高可用架构及灾备体系并不完善。为了解决这一问题,我们可以根据业务系统的重要性,将其分为几个不同的等级,并为每个等级量身定制相应的高可用架构及灾备方案。
其中核心系统属于A类系统。A/B/C/D类业务系统生产端数据库的架构都是RAC集群,区别为是否配置了ADG,是采用小型机还是X86,是在一套集群上部署一套还是两套数据库。分类之后再进行核心业务系统和核心系统除外的灾备架构和实现方式。
核心业务系统高可用架构图
数据库补丁管理
精准施策,防范未然
适时地进行补丁分析与升级至关重要。当遇到新版本操作系统或数据库安装、季度PSU补丁发布等情况时,就需要进行详尽的补丁分析,以避免潜在问题。这一过程不仅需要精确的分析策略,还需要完善的补丁升级计划,确保数据库始终保持在最佳状态。
那么,什么时候需要做补丁分析?
以Oracle数据库为例,当出现下列情况时,需要考虑做补丁分析:
- 在目标版本的操作系统上安装数据库,为了避免目标版本的OS出现BUG需要分析OS需要安装哪些补丁。
- 安装目标版本的数据库,为了避免新安装数据库出现严重BUG,需要数据库应该安装哪个patchset、哪个PSU补丁及小补丁。
- 随着ORACLE季度PSU补丁的发布,需要关注新补丁的分布并对严重性分类,需要做补丁分析,这样,已有数据库可以根据升级策略提前升级补丁以预防潜在问题。
- 当已有数据库出现严重BUG,考虑安装补丁时,具体需要安装哪个PSU补丁。
数据库最佳实践
细节决定成败
基于多年服务经验,我们总结了一系列最佳实践,覆盖操作系统配置、ASM参数调整、数据库参数优化等多个方面。通过这些精心设计的策略,我们能够有效消除系统运行中的隐患,确保数据库的稳健运行。
数据库高可用测试
实战检验,确保万无一失
在数据库系统上线前,进行全面的高可用测试至关重要。这包括但不限于服务器单节点故障、网络故障、心跳网络故障等场景。通过预先设定的测试案例,我们可以验证系统在面对各种极端条件下的表现,确保其能够在实际应用中保持高度的可靠性和稳定性。
对RAC集群高可用架构和容灾能力进行测试,主要包含以下几个场景:
服务器单节点故障:服务器发生故障重启是运行期间常见的问题之一,硬件故障,网络故障,参数配置错误等都可能导致服务器不稳定或者宕机;一旦服务器硬件出现故障,数据库随之也会受到影响,可能会导致数据库重启或者关闭。针对这些情况,设计两个测试用例分别模拟单节点手动重启服务器和异常宕机时的情景。
服务网络故障:本次预设的生产环境是双公网网卡和双私网网卡的rac环境,其中每组网卡都分为主网卡和备网卡,当公网主网卡出现故障后系统会自动切换到备网卡继续运行,理论上这个切换的过程会非常短、不会对业务产生影响;同时,因为数据库正常运行时不会用到备网卡,如果是备网卡发生故障业务也不会受到影响。当公网双网卡同时发生故障时,服务器将无法对外开放。
心跳网络故障:本次预设的生产环境是双公网网卡和双私网网卡的rac环境,其中每组网卡都分为主网卡和备网卡,当公网主网卡出现故障后系统会自动切换到备网卡继续运行,理论上这个切换的过程会非常短、不会对业务产生影响;同时,因为数据库正常运行时不会用到备网卡,如果是备网卡发生故障业务也不会受到影响。当私网双网卡同时发生故障时,如果较短时间就恢复,集群层面不会出现异常,若超过了misscount时间集群会出现脑裂现象。
服务器单节点HANG故障:服务器运行期间由于硬件或软件异常原因都有可能导致节点HANG死。操作系统因CPU、内存耗尽或BUG,OS挂起,无法响应数据库。针对这些情况,分别设计0S无法响应、cluster软件关键进程无响应、cluster软件关键进程异常终止、database软件关键进程无响应、database软件关键进程异常终止、业务作业进程无响应等6个大的场景进行测试。
操作人员操作失误:实际环境中,有可能存在操作人员误操作导致数据丢失,本次场景分闪回查询表、延迟闪回adg三个测试用例来分别模拟恢复数据。
除此之外还将对san网络故障、软件升级、HBA卡升级等场景进行测试。
运维体系建设
预防为主,应对为辅
构建全面的运维体系是保障数据库长期稳定运行的基础。这包括制定详细的预防策略、建立完善的监控机制、提供详尽的手册指南以及系统的培训支持。通过主动预防而非被动应对,我们能够显著降低系统故障率,提高整体服务质量。
运维体系建设关系到数据库系统的持续稳定运行,主要内容如下:
- 制定预防未来可能导致性能不稳定的统计信息策略并实施,数据存放策略标准;
- 提供数据库监控指标体系和具体实现方式;
- 制定数据库备份恢复策略;
- 提供数据库变更手册、应急手册和维护手册;
- 提供系统性的培训和指导,为客户后续的深度自主运维奠定良好的人才基础。
- ... ...
为了提升业务连续性和用户体验,提升系统可用性、稳定性、安全性,全面提升运维质量,我们还会制定了数据库运维体系说明手册,用以指导数据库的日常运维工作。
Oracle运维体系的模型
主动式优化与问题梳理
防微杜渐,未雨绸缪
数据库运维和消防一样,永远都是“预防重于救火”,被动式的故障处理只能解决突发的问题,只有主动梳理及预防才能防患于未然,真正做到事半功倍!
中亦科技会从主动式分析和预防及基于开发运维最佳实践进行问题梳预防进行说明。主动对数据库运行情况进行性能监控,抓取性能表现不佳或扩展性不佳的SQL/PLSQL并进行主动分析,提交优化建议。通过梳理并预防潜在问题,我们能够提前发现并解决隐患,减少未来可能出现的问题数量。
在这个信息爆炸的时代,数据库的可靠性很关键。中亦科技一直在不断的总结项目经验,培养专业技术团队,完善服务体系,希望通过不断升级的数据库可靠性方案,提高数据库的可用性和稳定性!
如果您有数据库可靠性提升的需求,欢迎留言联系我们,我们的技术专家团队将竭诚为您服务。
相关推荐
- 一个基于.Net Core遵循Clean Architecture原则开源架构
-
今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...
- AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%
-
写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...
- OneCode低代码平台的事件驱动设计:架构解析与实践
-
引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...
- 国内大厂AI插件评测:根据UI图生成Vue前端代码
-
在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...
- AI+低代码技术揭秘(二):核心架构
-
本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...
- GitDiagram用AI把代码库变成可视化架构图
-
这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...
- 30天自制操作系统:第六天:代码架构整理与中断处理
-
1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...
- AI写代码越帮越忙?2025年研究揭露惊人真相
-
近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...
- 一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具
-
一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...
- 5分钟掌握 c# 网络通讯架构及代码示例
-
以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...
- 从复杂到优雅:用建造者和责任链重塑代码架构
-
引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...
- 低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈
-
专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...
- 框架设计并不是简单粗暴地写代码,而是要先弄清逻辑
-
3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...
- 大佬用 Avalonia 框架开发的 C# 代码 IDE
-
AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...
- 轻量级框架Lagent 仅需20行代码即可构建自己的智能代理
-
站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)