OB-Dashboard管理 OceanBase 集群学习笔记

1.背景

随着 OceanBase 的商业化及社区的推广,OceanBase 的客户群体数量越来越多、类型也越来越丰富有关键行业的头部企业,也有社区的开发者及中小客户,还有与 OceanBase 形成良好合作的生态商。

传统以 OCP 为中心,一体化管理和维护 OceanBase 的方式对于社区开发者和中小客户而言,管理成本高,平台依赖性强,并且缺乏在 OCP 故障不可用时的兜底管理方案。此外,国内外的数据库厂大多有原厂开发的黑屏命令行管理工具,而 OceanBase 现有的黑屏工具,如obd、ob_admin 等,目前还处于在诸如像社区开源、交付运维这样的独立场景应用,未完全推向用户侧。因独立发展的关系,安装及使用方式各异,暂未从整体上形成对外统一方案,很难为客户输出更大的价值。

为了解决上述痛点,免安装、成本低、易上手、运维手段丰富的 OceanBase 内置开源管控工具 obshel(黑屏)/0B-Dashboard(白屏)应运而生。

简单介绍一下 OB-Dashboard:

● OB-Dashboard 是基于 obshell 提供的 Web 图形化 OceanBase 管理工具,提供了常用的OceanBase 日常管控功能,适合管理小规模部署的 OceanBase 集群。

● OB-Dashboard 凭借轻量化、易用性及开源特性,为 OceanBase 用户提供了一套高效的图形化管理工具,尤其适用于中小规模集群的日常运维场景。项目团队持续快速迭代,未来将通过集成更丰富的管控功能,进一步优化 OceanBase 的管理体验。

● OB-Dashboard 基于 obshell,源代码 100% 开源,详细信息请参见:GitHub 代码仓库。

2.概述

2.1.obshell

obshell (OceanBase Shell)是 OceanBase 社区为运维人员 & 开发人员提供的免安装、开箱即用的本地集群命令行工具。obshell 支持集群运维,同时基于 OBServer 节点对外提供运维管理 API,实现不同生态产品对同一集群统一管理,从而方便第三方产品工具对接 OceanBase 数据库,同时降低了OceanBase 集群管理难度和成本,

obshell 不需要额外安装。您通过任何方式安装 OceanBase-CE 数据库都可以在任何一个节点的工作目录的 bin 目录下看到 obshell 可执行文件。

此外,obshell 还提供了基于 Web 的交互式管理页面 一-OB-Dashboard,专为 OceanBase 集群和租户资源的管理而设计。它提供了关键资源的监控功能,帮助用户高效管理 OceanBase 集群。

2.2.OB-Dashboard

OB-Dashboard 是基于 obshell 提供的 Web 图形化 OceanBase 管理工具,提供了常用的 OceanBase 日常管控功能,适合管理小规模部署的 OceanBase 集群。

OB-Dashboard 服务完全集成在 obshell 进程中,用户可以通过访问任何部署了 obshell 的服务地址来管理 OceanBase 集群。这种设计不仅简化了管理流程,还确保了极低的资源开销,为用户提供简单易用的管控体验。

obshell 通过本地 salite 数据库和其所管理的 OB 集群进行元数据的存放,以极低的额外成本引入实现对单个集群的部署和管控,提供丰富的白屏 +黑屏的运维手段,供用户自由选择。

主要优势:

● 部署简单:随 OceanBase 一起发布,无需额外安装,OBD OCP 等工具会默认拉起进程。

● 简单易用:基于 Web 图形化页面交互,提供常用的 OceanBase 管理功能。

● 资源占用低:使用 Go 语言实现,资源占用极低,运行时仅需百兆内存左右。

● 完全开源:OB-Dashboard 基于 obshell,源代码 100% 开源,详细信息请参见 GitHub 代码仓库。

3.系统架构

上图展示了一个由 obshell 管控的 OB 集群的系统架构图。每个 obshell Agent 管理一个 observer,整个集群的运维动作由一个 obshell Agent 发起,多个 obshell Agent 共同协调推进。负责管理同- 〇B 集群中 observer 的 obshel Agent,构成 obshell 集群。每个 obshell 节点的元数据分为两部分,一部分存放在工作目录下的本地数据库中,这一部分元数据主要是 OB 集群部署和启动前,obshell 所需的信息,例如节点的身份信息和配置信息等。另一部分存放在所管理的 OB 集群中,这-部分元数据主要包括集群的拓扑信息,运维任务信息等。由于 obshell集群的元数据信息存放在所管理的 OB 集群中,避免了额外成本的引入。同时 obshell 运维的可用性仅依赖于 OB 集群可用,而当 OB 集群因多数节点宕机变得不可用时,obshell 还提供了应急启动的功能用干拉起 OB 集群,并且该运维动作不依赖 OB 集群,进一步提升了其可用性。

在 obshell 中,每个运维动作都由对应的任务完成,任务的调用时序图如下:

4.功能支持

截止到 obshell 4.3.0.1为止,obshel 具备一下功能,囊括绝大部分 OceanBase 基础运维功能,能够满

足日常管控所需:

5.系统集成

5.1.运维手段

除了可以通过直接请求 API 使用 obshell 管控 OB 集群外,还可以通过一下方式创建并管控 OB 集群。

5.2.内部集成进展

除了使用 obshell 创建 OB 集群外,通过 OBD 或 OCP 部署并启动的 OB 集群,也会自动拉起 obshell 进程并接管 OB 集群。对于手动部署的 OB 集群,可通过命令行或 SDK 拉起 obshell 节点进行接管。

● OBD

V 2.6.0 开始,OBD 开始对 obshell 进程生命周期进行维护,目前,obd 已经通过集成。obshell-sdk-python 实现备份恢复功能,后续将逐步继续通过 obshell 替换原有的运维功能对于已经支持 OB-Dashboard 的 OB 版本,OBD 在部署成功之后,会展示出 OB-Dashboard 的访问地址,复制到浏览器即可体验。

● OCP

oV4.3.3 开始,OCP 开始对 obshell 进程生命周期进行维护,后续将逐步通过 obshell 替换原用的运维功能。

● YUM INSTALL

在使用 systemctl 启动 OceanBase 服务时,会先启动 obshell 进程,再通过 obshell 拉起OB 集群。

● OB-Dashboard

从 obshell 4.3.0.0 开始提供白屏运维 OB-Dashboard,访问集群中任- obshell 的 web 服务端口即可访问。

6.工具对比

和其他的开源管控工具对比

7.使用 OB-Dashboard 管理 OceanBase 集群实操

7.1.安装 OB-Dashboard

OB-Dashboard 无需额外部署,无论通过 OBD 或 OCP 拉起的 OceanBase 集群都会同时拉起 obshell 进程,通过浏览器访问对应主机地址和 obshell 的端口即可访问 OB-Dashboard 页面。

7.2.登录 OB-Dashboard

OB-Dashboard 使用 OceanBase 的账号体系进行鉴权,登录页面输入 root 账号的密码即可完成登录,如 root 账号密码为空可以直接点击登录。

7.3.集群管理

7.3.1.基础信息展示

OB-Dashboard 首页展示了当前 OceanBase 集群的基本信息,包括资源分配和使用情况,集群拓扑,合并信息等,用户可以通过首页简单直观的获取集群的状态信息。

7.3.2.参数管理

更改参数:将memory_limit 由7G改成12G

要求:点击参数管理按钮进入集群参数管理页面,可以搜索参数并对其进行修改,以内存相关参数为例,首先搜索关键字 memory,注意两个关键参数的值 memory_limit 为7G,system_memory 为 1G,我们可以尝试将 memory_limit 的值修改为 12G。

修改过程:

点击 memory_limit 后的修改值,填入 12G 生效范围选择集群,点击确定,确认修改信息后再点击确定完成修改。

回到首页,鼠标移动到集群已分配资源部分,查看集群的资源信息可以看到内存总量已经变成 11G, 这里的总量指的是可以分配给租户的内存大小,计算方式是 memory_limit - system_memory 得到的结果和修改后的参数匹配。

说明:memory_limit 修改后只是修改了 OceanBase 可使用的内存阈值大小,并不是立即占用,不建议设置为超过实际内存大小的值。

7.3.3.集群启停

集群停止

集群正常运行状态下,点击停止集群,再点击确认框的停止按钮会发起停止集群的任务,点击弹框中的任务 ID 进入任务页面,可以查看停止集群的任务详情。

任务成功后回到首页,可以看到集群处于异常状态,同时各种统计信息为空,点击启动集群按钮,再次点击弹框中的启动按钮,会发起启动集群的任务,同样可以通过任务 ID 查看启动集群的任务详情,集群正常启动后首页信息恢复展示。

启动集群

7.3.4.其他集群管理功能

目前 OB-Dashboard 上还提供了升级集群和升级 obshell 的功能,这两个功能需要上传对应的软件包,之后可以发起升级的任务。

7.4.租户管理

7.4.1.新建租户

点击租户管理页面中的新建租户按钮,进入新建租户页面,填入租户的基本信息并点击提交按钮,之后会发起创建租户的任务。

密码要复制出来,避免忘记。

等任务执行成功之后,返回租户管理页面,可以查看到刚刚创建的租户。

点击租户名,可以进入到租户详情页面展示租户的基本信息和一些操作的入口。

7.4.2.租户资源调整

租户的资源由 unit 定义,点击修改 unit 按钮,调整 unit 规格后点击确定将发起修改 unit 的任务,等待任务成功后 unit 即修改成功

7.5.数据库管理

7.5.1.新建数据库

点击数据库管理页面的新建数据库按钮,填写数据库信息后点击提交即可创建出对应的数据库。

7.5.2.用户管理

点击用户管理页面的新建用户按钮,填写用户名,密码并选择相应的权限后点击提交,即可创建一个用户,例如创建一个 readonly 用户并赋予 dxj 数据库的 select 权限。

同时页面上还提供修改密码、修改权限、锁定、删除 等操作。

7.5.3.参数管理

租户参数管理功能类似于集群的参数管理,区别在于租户的参数生效范围为当前租户,无需再次选择生效范围。

8.总结

OB-Dashboard 凭借轻量化、易用性及开源特性,为 OceanBase 用户提供了一套高效的图形化管理工具,尤其适用于中小规模集群的日常运维场景。项目团队持续快速迭代,未来将通过集成更丰富的管控功能,进一步优化 OceanBase 的管理体验。

相关推荐
OceanBase数据库2 小时前
基于分层协作多智能体的数据库参数调优——OceanBase 校企研究
oceanbase·分布式数据库
OceanBase数据库5 小时前
美的以OceanBase为基构建云中立数字化基座破局多云孤岛
oceanbase·分布式数据库
OceanBase数据库2 天前
印尼头部私营征信机构基于OceanBase实现核心数据库现代化升级
oceanbase·分布式数据库
OceanBase数据库官方博客2 天前
深度解读 OceanBase 多模一体化能力
数据库·ai·oceanbase·分布式数据库
赵渝强老师6 天前
【赵渝强老师】国产金仓数据库的数据库对象
数据库·postgresql·oracle·oceanbase·国产数据库
OceanBase数据库官方博客7 天前
OceanBase 一体机实现极简运维 10:1数据压缩降成本
oceanbase·分布式数据库
Navicat中国7 天前
1月31日·上海 | Navicat 鼎力助阵 OceanBase 年度嘉年华
数据库·oceanbase·navicat
老纪的技术唠嗑局7 天前
不止于替换 HBase:宝付支付借力 OceanBase,构建面向未来的“TP+AP+KV+AI”统一数据基座
人工智能·hbase·oceanbase
OceanBase数据库官方博客9 天前
新闻动态|OceanBase 再入选“中国高质量软件及服务先锋榜”
oceanbase·分布式数据库
赵渝强老师17 天前
【赵渝强老师】OceanBase的配置文件与配置项
数据库·oceanbase