2.0 解析系列 | 如丝般顺滑!一线运维人员谈如何实现数据库的平滑在线升级

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: OB君:9月21日,OceanBase 2.0 在云栖大会上重磅发布。我们将在接下来的时间里为大家持续推出 “OceanBase 2.0 技术解析系列” 文章,分别从 可运维性、分布式架构、数据可用性、性价比及兼容性 五个方面对OceanBase 2.0的产品新特性及其背后的技术原理进行深入的解析。

OB君:9月21日,OceanBase 2.0 在云栖大会上重磅发布。我们将在接下来的时间里为大家持续推出 “OceanBase 2.0 技术解析系列” 文章,分别从 可运维性、分布式架构、数据可用性、性价比及兼容性 五个方面对OceanBase 2.0的产品新特性及其背后的技术原理进行深入的解析。今天我们就重点聊聊OceanBase 2.0在线升级的那些事。更多内容欢迎持续关注本系列!

_

本文作者:游愚

现任蚂蚁金服OceanBase DBA团队高级运维工程师,2016年加入OceanBase DBA团队,从事OceanBase数据库运维与运维系统建设工作。

原文:

OceanBase 2.0在性能,成本和可用性上带来了一系列的新特性,而对于数据库的一线运维人员,或许对可运维性和运维风险这两方面更加关心。面对OceanBase 2.0新版本的美好特性,运维人员如何安全无风险的对OceanBase数据库进行升级?如何防止升级引入新问题对生产系统造成故障?

OceanBase(以下简称为OB)作为一款金融场景的分布式数据库,升级必须能做到平滑,可灰度,可回滚,为业务提供24小时不间断的服务。得益于分布式架构,一个OB数据库实例由多个可用区(zone)同时提供服务(通常为3个或5个)。

在数据库升级过程中,OceanBase 2.0版本支持不同的可用区使用新旧两个数据库版本同时提供服务,新旧版本可互相兼容。多个可用区可以轮转升级,做到升级过程对应用透明无感知,可运维性大大提升。

轮转升级

OceanBase 2.0集群升级可采用多个可用区轮转升级的方式,也就是对可用区逐一进行升级。

升级某个可用区前,首先将该可用区置为停止服务。此时副本的主将自动切换到其他可用区, 该可用区的数据副本将不承担业务读写流量。此时对该可用区下的OB进程进行升级和重启操作,不会影响到应用的db读写。待该可用区升级完成后,重新将其置为提供服务状态。此时该可用区将重新承担业务流量。之后以此过程再依次升级剩余可用区。整个升级过程应用无感知,应用无需配合db端做任何的停写停服务操作。

灰度切流验证

对升级较敏感的核心业务,OceanBase 2.0版本提供了灰度切流验证新版本的能力。灰度切流是指将业务流量按百分比逐步切换到新版本上。OceanBase允许用户数据的多个副本使用新旧两个OB版本。运维人员进行数据库升级时(例如从OceanBase 1.0升级到2.0),可以选择OB集群中的一部分可用区升级到新版本,之后将主副本逐步切换到新版本的可用区上,以验证新版本OB的功能和性能。一旦发现问题,可以立即回切到旧版本的可用区。保证应用持续可用,升级安全可靠。

除此之外,OceanBase 2.0的DB Replay功能也可以用于新版本的验证,运维人员可以搭建新版本的OB集群并将旧版本OB的读写流量回放到新版本的测试集群上,提前验证新版本。大大降低了运维人员做数据库升级的风险,这个功能我们也会在后续的文章中深入讲解。

新旧版本兼容

为了保证同一个OB集群可以新旧多个版本同时运行,OceanBase 2.0在内部实现上保证新旧版本的兼容和可回退。同时兼容了OceanBase 1.0的协议与数据格式,从1.0到2.0版本的升级同样也能做到如小版本升级一样平滑。

新版本如果对RPC行为进行了修改,如何与旧版本的OB进行通信呢? 实际上OB新版本会保留旧版本的RPC行为。可以通过集群内部的版本号参数来控制OB使用哪个版本的RPC行为。当OB集群的所有可用区都升级到新版本后,将版本号设为新版本,此时才使用新RPC行为进行通信。

升级回滚

与1.0相比,OceanBase 2.0同时也允许将集群的版本回退到升级前的版本。运维人员只需按照和升级流程相同的方式将OB集群的多个可用区轮转降级到原版本即可。回退过程同样对应用透明。

那么如果新版本的数据存储格式发生了变化,如何回退版本呢?对于这种情况,集群同样有内部参数控制存储是使用新数据格式还是旧数据格式。若要回退到旧数据格式,运维人员需要修改参数并进行一次全量合并。当存储数据回退到旧数据格式后,才可以继续做版本回退。

平台支持

OceanBase云管控平台(简称OCP)提供了对OceanBase 2.0集群一键升级的能力,支持全集群升级和集群部分可用区升级。流程包括了升级的预检查和后检查,可用区轮转升级,集群参数升级,内部表修改等升级步骤。运维人员无需黑屏操作,一键即可完成对一个集群的升级操作,大大提升了一线运维人员的幸福感。

下期预告
本文是“OceanBase 2.0 技术解析系列”文章的第二篇,下一篇将为你系统分析OceanBase 2.0中的DB Replay功能。敬请期待!

OceanBase 2.0技术交流群

想了解更多 OceanBase 2.0 特性?

想与蚂蚁金服OceanBase的一线技术专家深入交流?

在微信添加好友处搜索“liqiqi68536632”添加小编微信,快速加入OceanBase技术交流群!

加入我们
【OB云平台研发专家/架构师】

岗位职责:

  1. 负责大规模运维系统,比如自驱动平台或AIOPS的设计开发,包括部署、监控、备份、高可用、容器化等能力,服务云上和云下企业用户;
  2. 带领一个研发小组,负责产品整体架构的设计、确定核心模块的功能实现方案和性能优化方案;
  3. 参与平台架构的设计,主导设计底层模块,技术实现方案要兼顾性能、稳定性、扩展性和易用性。所有功能及异常通过数据驱动做到自恢复自优化;
  4. 团队内外高效协作,确保前后端模块的协同工作,开发团队采用敏捷开发模式。

【OB云产品研发专家/算法专家】

岗位职责:

1.需要理解业务,根据业务需求完善OceanBase云产品,包括数据库开发中心、自动化性能优化与诊断,容量和性能的分析预测,在线数据实时计算等等;
2.OceanBase驱动、工具研发,包括JDBC,SDK,API等;
3.进行数据相关的采集、存储、同步、管理等开发,基于数据做智能诊断,在数据采集、建模分析、产生决策、自动修复上形成闭环。

可直接发送简历到

OceanBase-Public@list.alibaba-inc.com,我们等的就是你!

相关文章
|
19天前
|
运维 监控 NoSQL
【MongoDB 复制集秘籍】Secondary 同步慢怎么办?深度解析与实战指南,让你的数据库飞速同步!
【8月更文挑战第24天】本文通过一个具体案例探讨了MongoDB复制集中Secondary成员同步缓慢的问题。现象表现为数据延迟增加,影响业务运行。经分析,可能的原因包括硬件资源不足、网络状况不佳、复制日志错误等。解决策略涵盖优化硬件(如增加内存、升级CPU)、调整网络配置以减少延迟以及优化MongoDB配置(例如调整`oplogSize`、启用压缩)。通过这些方法可有效提升同步效率,保证系统的稳定性和性能。
35 4
|
21天前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
21天前
|
存储 运维 监控
数据库服务器运维最佳实践
【8月更文挑战第22天】
32 2
数据库服务器运维最佳实践
|
17天前
|
缓存 运维 监控
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
|
17天前
|
缓存 运维 Linux
深入解析:一步步掌握 CentOS 7 安装全流程及运维实战技巧
深入解析:一步步掌握 CentOS 7 安装全流程及运维实战技巧
|
12天前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
30 0
|
12天前
|
C# 开发者 Windows
震撼发布:全面解析WPF中的打印功能——从基础设置到高级定制,带你一步步实现直接打印文档的完整流程,让你的WPF应用程序瞬间升级,掌握这一技能,轻松应对各种打印需求,彻底告别打印难题!
【8月更文挑战第31天】打印功能在许多WPF应用中不可或缺,尤其在需要生成纸质文档时。WPF提供了强大的打印支持,通过`PrintDialog`等类简化了打印集成。本文将详细介绍如何在WPF应用中实现直接打印文档的功能,并通过具体示例代码展示其实现过程。
48 0
|
12天前
|
Java 数据库连接 数据库
AI 时代风起云涌,Hibernate 实体映射引领数据库高效之路,最佳实践与陷阱全解析!
【8月更文挑战第31天】Hibernate 是一款强大的 Java 持久化框架,可将 Java 对象映射到关系数据库表中。本文通过代码示例详细介绍了 Hibernate 实体映射的最佳实践,包括合理使用关联映射(如 `@OneToMany` 和 `@ManyToOne`)以及正确处理继承关系(如单表继承)。此外,还探讨了常见陷阱,例如循环依赖可能导致的无限递归问题,并提供了使用 `@JsonIgnore` 等注解来避免此类问题的方法。通过遵循这些最佳实践,可以显著提升开发效率和数据库操作性能。
30 0
|
12天前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
30 0
|
12天前
|
SQL 存储 数据库

推荐镜像

更多