OceanBase 运维管理工具 OCP 4.x 升级:聚焦高可用、易用性及可观测性
可视化的管控平台,对 OceanBase 这类的分布式数据库及大规模数据的运维管理来说,是提升运维效率与数据库管理水平的重要工具。OceanBase 运维管理工具 OCP 作为专为OceanBase数据库设计的企业级全生命周期管理平台,为用户提供了全面的数据库可视化运维监控能力,既能让新手迅速掌握 OceanBase 数据库的使用,也能作为DBA在生产环境中日常运维的得力助手。
OCP 4.x 在继续增强基础运维功能的同时,基于 OceanBase 内核能力、实际运维场景以及用户诉求,推出了多项场景贴合的实用性功能,希望帮助用户更高效地管理和运维 OceanBase 数据库。
一、全面提升 OceanBase 数据库可观测性
(一)全链路追踪
数据库前后端调用链路极其复杂,当业务出现超时或者性能异常问题时,用户往往难以定位问题是出在数据库内部组件还是是网络上,通常只能根据经验和日志进行分析,造成问题分析、解决耗时较长,从而影响了业务的连续性。OceanBase 4.x 在诊断能力方面有了显著提升,其中包括被誉为“排查利器”的全链路追踪功能。全链路追踪可以实现对 SQL 请求从客户端->OBProxy->OBServer 整条链路的耗时精准追踪,帮助用户快速定位具体问题发生在执行阶段、机器或功能模块,并提供相关的执行信息。
OCP 4.2.1 版本开始支持租户和会话级别的全链路追踪可视化配置,通过与 OpenSearch 配合,实现不同维度的快速检索,如按耗时检索,指定 Trace ID 或 SQL ID 检索等,直观地看到请求从客户端到数据库内部全链路各组件的执行信息,从而快速发现真正的问题点,避免不同角色相互推诿。
图 1:OCP 全链路追踪诊断能力
(二)监控大盘
在实际使用 OCP 的场景中,用户可能会遇到如下业务监控诉求:
○ OCP 默认提供的监控指标已超过 60 个,业务环境只需关注其中部分指标。
○ 类似双 11 这样的业务高峰发生时,如何监控多个业务集群?
○ 当多个监控指标存在关联时,如 QPS、RT、TPS 等,如何查看同一时刻的指标数据?
○ 当发现某个指标暴增时,如何区分这是正常的波峰流量还是异常行为?
为了更好地解决上述监控需求,OCP 4.2.2 提供了监控大盘功能,用户可以添加多个图表来显示不同集群或租户的指标和数据,实现多对象、单个或多个指标监控视图的关联查看或多个集群的不同监控指标。同时,监控大盘支持图表联动,实现同步展示多个指标的监控数据,帮助用户更好地分析数据。此外,监控大盘提供同比、日比、周比、月比 四种监控对比方式,帮助您轻松发现数据异常。您还可以根据数据特点选择折线图、饼图、表格等七种不同的图表类型,从而更好地理解和分析数据。监控大盘还支持图表拖拽、放大、下钻(单指标场景下)等多种功能,帮助您实现对数据库系统整体性能和运行状态的全面监控,提升 OceanBase 集群的整体可观测性。
图 2:OCP 监控大盘
(三)自定义监控
当前 OCP 已经内置了 50 多个监控指标以及 180 多条告警规则,基本涵盖常见的业务场景。为了更好的满足用户在不同业务场景的定制化诉求, OCP 4.2.1 实现了自定义监控功能,支持用户根据自身业务场景定制化监控图表和告警,典型场景包括对于 OceanBase 3.x 的转储次数、分区数以及表数量监控等,方便用户通过监控或者告警及时感知系统内部变化,从而及时解决相应问题,避免对业务产生影响。
二、更加完备的数据库高可用能力
(一)租户级主备库
主备库是 OceanBase 用于避免关键型业务发生站点故障的解决方案。该解决方案能够在远端维护生产数据库的一个同步物理副本,从而以简单和经济的方式防止数据丢失和停机。如果生产数据库由于任何原因不可用,客户端连接可以迅速地故障切换至同步副本以恢复服务。
OceanBase 数据库在 4.1.0 版本之前,集群有两种角色:主集群和备集群,备集群是主集群的一个数据备份,保证事务一致性。从 4.1.0 版本开始,物理备库采用独立的主备库架构,主备关系存在于租户级别,主备之间通过网络直连或第三方日志服务建立传输渠道,只传输日志,即主或备的角色信息属于租户,分为主租户和备租户,集群不再有主备角色的概念,而仅仅是承载租户的容器。主租户是用户创建的业务租户,支持完整的数据库服务能力;备租户则仅提供容灾和只读服务的能力。
OCP 4.2.0 开始支持通过基于日志归档及基于网络进行搭建租户的主备关系,支持构建 1 主 1 备或多备和级联方式的租户级物理备库高可用解决方案。用户仅需通过主备库日常切换和主备库容灾切换即可动态改变租户角色,同时 OCP 实现展示主备延时以及提供暂停&开启同步功能,最大限度的帮助用户提升主备库的管理效率。
(二)仲裁服务
仲裁服务通过仅传递部分选举日志,在半数全功能副本故障导致日志无法达成多数派时,租户可通过仲裁服务实现自动降级来恢复数据库服务。OCP 支持为 OBServer 4.1 及以上版本对 2F 或 4F 的租户配置仲裁服务,提供仲裁服务的部署、启停、接管、删除、升级等能力,实现了对仲裁服务的全生命周期管理能力,同时基于仲裁服务低资源消耗以及支持多集群的特性:
○ 在单集群模式下,通过 N 个集群复用同一仲裁服务,用户可以至少减少 N 个全功能副本的节点配置,极大的降低集群的硬件部署成本。
○ 在两地三中心部署模式下,仲裁服务可以解决两地三中心同城副本故障时 RT 变大的问题,同时可以有效降低跨城带宽开销,并降低第三机房(两地三中心部署模式)的部署成本。
总体简单来说,仲裁服务实现了 OceanBase 数据库高可用能力的“减量不减价",使 OceanBase 数据库的高可用解决方案在成本和收益之间达到了完美平衡。
三、更加精细化的资源管控
(一)资源隔离
OceanBase 数据库是面向多租户设计,用户通过在集群层面实现了实例资源的池化,实现 DBaaS(Database as a service)平台。在 OceanBase 数据库中,每一个租户即一个实例(类似于 MySQL 实例)。租户(tenant)既是数据库对象(如表、视图、储过程等)的容器,也是资源(CPU、内存、IO 等)的容器,租户间已经进行资源隔离,保障了相互之间的访问不受影响。但如何解决单个租户内的资源管理呢?
○ 当多个不同业务共享同一租户,某个业务的非预期负载上升会影响其他高优业务的正常运行。
○ 当租户内存在混合负载时,对资源需求较高的数据分析或批量作业会影响在线交易类业务的 RT。
○ 在某些 7x24 高可用性的业务系统中,后台任务(如数据备份、合并/转储以及 DDL 操作)可能会影响在线业务
○ 大小账号或者某类异常 SQL 的运行可能造成在线业务的 RT 升高。
为此,OCP 4.2.0 基于 OceanBase 内核能力提供了精细化 资源管理的重要能力:资源隔离,通过高度精炼的方式简化用户配置难题,实现了用户级别、后台任务以及更细粒度的 SQL 级别资源隔离,满足不同场景的资源控制需要,同时支持动态调整资源隔离计划能力,如启用、停用、修改及删除资源隔离计划。在保证可用性和性能的前提下,资源隔离可以帮助用户优化资源使用效率,降低资源使用成本。
图 3:OCP 精细化管理能力演示
(二)租户间 IOPS 资源隔离
I/O 吞吐通常是数据库系统最常见的资源瓶颈,也是资源管控的最大难点之一。OceanBase 4.0 通过虚拟化磁盘带宽(IOPS)达成对最重要的 I/O 资源进行了限制,解决了不同业务租户间磁盘争用的难题,实现如同多个租户运行在多块不同的磁盘的实际效果,使 OceanBase 的租户具备业内一流的 I/O 隔离能力。OCP 4.2.1 开始支持用户在创建 Unit 时根据业务重要程度设置 IOPS,确保对应租户下所有业务请求都会受到此 IOPS 的限制,进而确保高优业务不受其他低优业务影响,保障业务平稳运行。
四、业务视角的产品优化
OCP 4.x 版本从用户视角出发,实现了 80 多项易用性方面的改进和优化,包括 900 多个产品错误码,告警中心能力和任务编排优化,以及增加产品功能和限制提示等, 帮助用户更好地管理 OceanBase 数据库和使用 OCP。OCP 4.2.2 提供了一个重要的新功能:标签。标签是 OceanBase 管理的资源(如 OceanBase 集群、仲裁服务、租户、OBProxy 集群以及主机等)进行标识的工具。标签的应用场景主要有:
○ 使用标签查询资源:通过标签对资源进行标记,可以帮助用户从不同维度对具有相同特征的资源进行分类、标记和搜索,使资源管理变得更加简单。
○ 使用标签作为资源的别名或者备注:当资源名称不具有业务含义时,用户可以赋予资源具有业务意义的名称,帮助用户快速识别资源的作用。
同时,标签管理提供了批量绑定、编辑以及删除等功能,使用户能够更方便、更快捷地使用标签。
五、写在最后
综上所述,OCP 4.X 在 OceanBase 数据库的可观测性、高可用、资源管控以及易用性等方面均进行了显著的优化,在基础运维和稳定性方面,该版本也取得了显著的改善:
○ 基础运维方面:OCP 支持了更多的基础运维操作,包括迁出 OceanBase & OBProxy 集群 及仲裁服务管理能力,新增 OBLB/OBNDS 告警,实现了表级别恢复,支持 COS(腾讯云)/OBS(华为云) 等对象存储介质等。整体上来说,OCP 实现了对于 OceanBase 数据库基础运维操作高达 95% 覆盖度;
○ 稳定性方面:我们着重优化监控收集计算逻辑以及资源使用。在银行客户实际业务场景中, OCP 4.2.2 实现稳定支持 100+ 集群,2000+ 租户, 800+ 物理机器的资源管理规模。未来,我们会继续增强基础运维能力,如统计信息管理、库&表回收站以及 Region/Zone 管理等。为了帮助用户更好的运维数据库,我们会继续增强可观测性如全链路监控,等待事件以及日志分析等,探索自动化运维如信息采集、根因分析以及预案管理等。此外,我们也会着力降低 OCP 的部署成本,如使用开源的时序数据库替代 MonitorDB 以及优化应用计算逻辑等。
面向未来,OCP 将继续朝着“简单留给客户,复杂留给自己”的产品理念不断前进,我们希望将 OCP 打造成为 OceanBase 一站式的全生命周期的管理平台。在每次版本迭代中,我们都致力于切实解决用户场景中的痛点和难点。同时,我们也希望倾听您的声音和宝贵建议,让我们一起努力让 OCP 产品更完善,帮助用户更高效地管理 OceanBase 数据库。
相关文章:

OceanBase 运维管理工具 OCP 4.x 升级:聚焦高可用、易用性及可观测性
可视化的管控平台,对 OceanBase 这类的分布式数据库及大规模数据的运维管理来说,是提升运维效率与数据库管理水平的重要工具。OceanBase 运维管理工具 OCP 作为专为OceanBase数据库设计的企业级全生命周期管理平台,为用户提供了全面的数据库可…...

HarmonyOS应用开发( Beta5.0)HOS-用户认证服务:面部识别
介绍 User Authentication Kit(用户认证服务)提供了基于用户在设备本地注册的人脸和指纹来认证用户身份的能力。 用户向应用/系统服务请求访问某些个人数据或执行某些敏感操作时,应用/系统服务将调用系统用户身份认证控件对用户身份进行认证…...

解决Docker镜像不可下载
使用国内可信的镜像中心 可信国内镜像网址:https://hub.atomgit.com/ 点击镜像仓库 搜索想要的镜像 按如图所示,即可查看对应的版本 点击复制,即可下载使用 缺点: 可用的镜像相比于docker官方量少 并且,获取的镜像名字…...

考研报名确认上传身份证户口本学历证明照片如何压缩裁剪
随着考研季节的到来,数以万计的考生开始准备报名所需的各种材料。在这一过程中,证件照片的上传无疑是一个关键环节。正确的照片格式和尺寸不仅能确保报名流程的顺利进行,还能避免因材料不合格而造成的不必要麻烦。本文将详细介绍如何在考研报…...

DolphinScheduler应用实战笔记
DolphinScheduler应用实战笔记 一、前言二、DS执行SQL或存储过程二、DS调用DataX同步数据三、DS调用HTTP接口四、DS依赖(DEPENDENT)节点五、DS SPARK 节点六、DS Flink 节点七、DS Flink 节点八、DS SQL 节点九、DS Java程序十、DS Python节点 一、前言 DolphinScheduler&…...

IThenticate查重为何成为英语期刊论文投稿首选工具
发表一篇英语论文,我发现很多人在准备向期刊投稿之前,都会选择使用IThenticate查重系统对论文进行相似性检测。是什么魔力,让这个查重工具让投稿者如此偏爱使用它查重呢? 一、什么是IThenticate查重系统? 在了解它被…...

C++ 在项目中使用Git
目录 一:配置邮箱和姓名 二:生成SSH Key 三:git 工作区和状态 四:git log 常用法 五:git diff 常用法 六:git 分支操作 七:git 回溯分支 八:git rebase -i 压缩历史提交…...

Python(TensorFlow和PyTorch)及C++注意力网络导图
🎯要点 谱图神经网络计算注意力分数对比图神经网络、卷积网络和图注意力网络药物靶标建模学习和预测相互作用腹侧和背侧皮质下结构手写字体字符序列文本识别组织病理学图像分析长短期记忆财务模式预测相关性生物医学图像特征学习和迭代纠正 Python注意力机制 对…...

选择firewalld还是iptables
firewalld与iptables介绍 firewalld和iptables都是Linux系统中用于管理防火墙规则的重要工具,但它们在功能、使用方式和适用场景上存在显著差异。 动态性: firewalld可以动态修改单条规则,并且能够动态管理规则集。这意味着在更新规则时不会…...

C到C++入门基础知识
一:命名空间:namespace (一):命名空间的定义 注:命名空间只能定义在全局,不能定义在函数内部。 (1)类似于C语言的结构体,C语言的命名空间定义为࿱…...

Aigtek功率放大器的主要参数有什么
功率放大器是一种电子设备,通常用于放大输入信号的功率。为了评估和描述功率放大器的性能,有一些主要参数需要了解。下面将介绍一些常见的功率放大器参数。 增益:功率放大器的增益是指输出功率与输入功率之间的比值。它表示了信号经过放大器后…...

运维工程师概述及职责
运维工程师 运维运维工程师(Operations Engineer 或 System Administrator)是负责确保计算机系统、服务器、网络、存储设备等基础设施稳定运行的专业人员。 运维工程师在IT行业中扮演着至关重要的角色,是连接开发团队和业务团队的桥梁&#…...

Android系统dumpsys命令详解
文章目录 1. dumpsys 的工作原理2. 基本使用方法执行 dumpsys限制 dumpsys 的输出 3. 常见的 dumpsys 服务1. Activity Manager (activity)2. Battery Service (battery)3. Window Manager (window)4. Package Manager (package)5. Power Manager (power)6. Media DRM (media.d…...

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二集:通过InControl插件实现绑定玩家输入以及制作小骑士移动空闲动画
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、通过InControl插件实现绑定玩家输入二、制作小骑士移动和空闲动画 1.制作动画2.玩家移动和翻转图像3.状态机思想实现动画切换总结 前言 好久没来CSDN看看&…...

基于鸿蒙API10的RTSP播放器(七:亮度调节功能测试)
目标: 当我的手指在设备左方进行上下移动的时候,可以进行屏幕亮度的调节,在调节的同时,有实时的调节进度条显示 步骤: 界面逻辑:使用Stack() 组件,完成音量图标和进度条的组合显示,…...

基于SpringBoot+Vue的校内跑腿业务管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…...

嵌入式鸿蒙系统开发语言与开发方法分析
大家好,今天主要给大家分享一下,HarmonyOS系统的主力开发语言ArkTS语言开发方法,它是基于TypeScript(简称TS)语言扩展而来。 第一:ArkTS语言基本特性 目的:声明式UI,让开发者以更简洁,更自然的方式开发高性能应用。 声明式 UI基本特性: 基本UI描述:ArkTS定义了各种装饰…...

SpringBoot开发——整合Spring Data MongoDB
文章目录 一、MongoDB简介1、MongoDB是什么2、MongoDB 基本概念(1)文档(2)集合(3)数据库3、MongoDB的系统数据库4、MongoDB数据模型二、SpringBoot整合Spring Data MongoDB1、创建项目,添加Spring Data MongoDB依赖2、创建实体类Student3、创建StudentRepository接口4、创建…...

camouflaged object detection中的decoder最核心的作用
在 camouflaged object detection(COD)任务中,decoder 的确有一个核心作用是进行 上采样 以恢复图像的分辨率,但这并不是它唯一或最核心的作用。我们可以从更广泛的视角来看 decoder 的作用。 1. 上采样(Upsampling&a…...

Java volatile
Volatile 作用:保证变量的可见性,有序性(禁止指令重排序)。不保证原子性。 如何保证可见性的? 场景:每个 线程 下都有一块 工作内存。要使用变量需要从 主内存 中把 变量 读取出来,使用完成后写…...

一条sql是如何执行的详解
一条sql是如何执行的详解 1. SQL 解析(Parsing) 2. 查询重写(Query Rewrite) 3. 查询规划(Query Planning) 4. 查询执行(Query Execution) 5. 结果返回 示例:查询执…...

“先天项目经理圣体”丨超适合做项目经理的4种人
总有人在问,什么样的人适合做项目经理,当项目经理需要什么样的特质? 你别说,还真有那么一些人是“先天项目经理圣体”,天生就是吃项目经理这碗饭的。 沟通达人丨靠“嘴”走天下 我们知道项目经理大部分的时间都在进行…...

如何从object中抽取某几个值,然后转换成数组
可以使用Object.entries(), Array.prototype.filter()和Array.prototype.map()或者解构赋值的方式从对象中抽取某些值并转换为数组 示例 1:使用 Object.entries(), filter() 和 map() const obj {a: 1,b: 2,c: 3,d: 4 };const keysToExtract [a, c];const extr…...

数据结构(14)——哈希表(1)
欢迎来到博主的专栏:数据结构 博主ID:代码小豪 文章目录 哈希表的思想映射方法(哈希函数)除留余数法 哈希表insert闭散列负载因子扩容find和erase 哈希表的思想 在以往的线性表中,查找速度取决于线性表是否有序&#…...

K近邻算法_分类鸢尾花数据集
import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score1.数据预处理 iris load_iris() df pd.DataFrame(datairis.data, columnsiris.featur…...

nacos和eureka的区别详解
Nacos 和 Eureka 都是服务发现和注册中心的解决方案,但它们在功能、设计和使用场景上有所不同。以下是它们的详细区别: 1. 基本概念 Eureka:是由 Netflix 开发的服务发现工具。它主要用于 Java 微服务架构中的服务注册与发现。Eureka 通过 R…...

AI大模型包含哪些些技术?
Prompt Prompt提示是模型接收以生成响应或完成任务的初始文本输入。 我们给AI一组Prompt输入,用于指导模型生成响应以执行任务。这个输入可以是一个问题、一段描述、一组关键词,或任何其他形式的文本,用于引导模型产生特定内容的响应。 Tra…...

分布式技术概览
文章目录 分布式技术1. 分布式数据库(Distributed Databases)2. 分布式文件系统(Distributed File Systems)3. 分布式哈希表(Distributed Hash Tables, DHTs)4. 分布式缓存(Distributed Caching…...

动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习
动手学习RAG: 向量模型动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习动手学习RAG:迟交互模型colbert微调实践 bge-m3 1. 环境准备 pip install transformers pip install open-retrievals注意安装时是pip install open-retrievals,但调用时只…...

Nacos rce-0day漏洞复现(nacos 2.3.2)
Nacos rce-0day漏洞复现(nacos 2.3.2) NACOS是 一个开源的服务发现、配置管理和服务治理平台,属于阿里巴巴的一款开源产品。影像版本:nacos2.3.2或2.4.0版本指纹:fofa:app“NACOS” 从 Github 官方介绍文档可以看出国…...