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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 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,我们等的就是你!

相关文章
|
2月前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
2天前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
21 5
|
1天前
|
SQL 运维 关系型数据库
数据库自治服务DAS:云数据库高效运维的最佳拍档
数据库自治服务DAS是阿里云推出的高效运维解决方案,旨在简化复杂数据库管理。DAS基于机器学习和专家经验,提供自修复、自防护、自优化功能,涵盖多源数据库支持、丰富的应用场景及端到端运维能力。其企业版引入AI技术,实现智能诊断与优化,显著提升数据库稳定性、安全性和性能。通过自动化处理常见问题,如SQL优化、容量规划等,DAS大幅降低人工干预需求,缩短故障恢复时间,助力企业实现高效、智能化的数据库运维管理。
|
4天前
|
存储 Java 数据库连接
时序数据库TDengine 3.3.5.0 发布:高并发支持与增量备份功能引领新升级
TDengine 3.3.5.0 版本正式发布,带来多项更新与优化。新特性包括提升 MQTT 稳定性和高并发性能、新增 taosX 增量备份与恢复、支持 JDBC 和 Rust 连接器 STMT2 接口、灵活配置 Grafana Dashboard 等。性能优化涵盖查询内存管控、多级存储迁移、强密码策略等,全面提升时序数据管理的效率和可靠性。欢迎下载体验并提出宝贵意见。
21 5
|
18天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
29 1
|
1月前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
161 5
|
18天前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
45 0
|
2月前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
2月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
107 2

推荐镜像

更多