如何更改OCP与metadb集群的连接方式 —— OceanBase运维管理

news2025/4/16 7:49:44

背景

许多用户都会借助OCP平台来进行OceanBase集群的运维与监控,且因为考虑单节点的OCP部署,在遇故障时可能会短时间出现无法管控 OceanBase集群,多数用户倾向于采用多节点方式来部署OCP,即 OCP的 metadb集群也是三节点的集群部署。

不过,在图形化部署OCP平台的时候,虽然OCP是多节点部署,OceanBase也是集群部署,但是也很容易造成单点故障。那就是OCP连接metadb的时候,因为本身不具备负载均衡能力,虽然在部署时部署了多个obproxy,但是实际OCP在连接metadb时,还是会只通过一个obproxy进行连接,而当这个obproxy出现故障时,OCP将无法连接metadb,导致OCP不可用。

因此就有了修改OCP连接metadb集群的需求,即在metadb的多个obproxy之上,通过搭建一个负载均衡,将OCP连接metadb的方式修改为连接 VIP 或者域名等方式,从而实现高可用。

实际修改连接方式,总共分三个步骤;

第一步:修改配置文件,修改OCP连接metadb的jdbc_url,然后填写连接ocp_meta租户和ocp_moniotr租户的信息;

第二步:修改状态文件,因为在第一步修改完配置文件之后,命令行提升可能需要重新部署(redeploy)集群,这个时候千万不要按照提示重新部署,这会导致集群数据全部丢失,需要修改成状态为NEED_RESTART;

第三步:带参数重新启动OCP集群。

下面就分步骤详细介绍下:

修改配置文件

在配置文件中,只需要修改ocp-server-ce下面的内容,默认在配置文件中,是没有关于OCP jdbc_url以及ocp_meta、ocp_monitor连接方式的配置,因此是需要将这些手动加上,默认配置大致文件如下:

ocp-server-ce:
  style: default
  package_hash: bd4512f9f708fb510d98f245b1be0b03a05e2cba
  version: 4.3.1
  release: 20240805192406.el7
  depends:
  - oceanbase-ce
  - obproxy-ce
  servers:
  - name: server2
    ip: 11.161.xx.xx
  global:
    home_path: /home/admin/ocp
    soft_dir: /home/admin/ocp/software
    log_dir: /home/admin/ocp/logs
    ocp_site_url: http://11.161.xx.xx:8080
    port: 8080
    admin_password: xxxxxx
    memory_size: 6G
    manage_info:
      machine: 10

首先,需要获取jdbc_url相关信息,这个可以在部署OCP时使用的obd命令的日志中(默认在~/.obd/log目录),过滤出jdbc_url信息,在日志里可以看到最初启动OCP时,连接metadb使用的连接串。在获取到这个连接串之后,将其修改为最新的 VIP 或者域名,填写到配置文件里,例如VIP为10.10.10.10,我过滤出来的jdbc_url如下

jdbc_url: jdbc:oceanbase://11.161.xx.xx:2883/meta_database

修改jdbc_url为如下,然后填入到配置文件中

jdbc_url: jdbc:oceanbase://10.10.10.10:2883/meta_database

接着再将ocp_meta和ocp_monitor两个租户的连接信息填入配置文件,最终结果如下:

使用obd cluster edit-config <deploy_name> 来修改配置文件

ocp-server-ce:
  style: default
  package_hash: bd4512f9f708fb510d98f245b1be0b03a05e2cba
  version: 4.3.1
  release: 20240805192406.el7
  depends:
  - oceanbase-ce
  - obproxy-ce
  servers:
  - name: server2
    ip: 11.161.xx.xx
  global:
    home_path: /home/admin/ocp
    soft_dir: /home/admin/ocp/software
    log_dir: /home/admin/ocp/logs
    ocp_site_url: http://11.161.xx.xx:8080
    port: 8080
    admin_password: xxxxxx
    memory_size: 6G
    manage_info:
      machine: 10
    jdbc_url: jdbc:oceanbase://10.10.10.10:2883/meta_database
    ocp_meta_tenant:
      tenant_name: ocp_meta
    ocp_meta_username: root # User to use under ocp meta tenant
    ocp_meta_password: xxxxxx # Password used to connect to ocp meta tenant
    ocp_meta_db: meta_database # Database used to store ocp meta data
    ocp_monitor_tenant:
      tenant_name: ocp_monitor
    ocp_monitor_username: root # User to use under ocp monitor tenant
    ocp_monitor_password: xxxxxx # Password used to connect to ocp meta tenant
    ocp_monitor_db: monitor_database # Database used to store ocp meta data

然后 :wq 保存退出

$obd cluster edit-config metadb
Search param plugin and load ok
Search param plugin and load ok
Parameter check ok
Save deploy "metadb" configuration
Use `obd cluster redeploy metadb` to make changes take effect.
Trace ID: b885716c-71a9-11ef-9ff0-00163e046d79
If you want to view detailed obd logs, please run: obd display-trace b885716c-71a9-11ef-9ff0-00163e046d79

这个时候,会提示你需要重新redeploy集群,不过千万不要执行 obd cluster redeploy metadb 来重新部署,我们可以通过修改obd记录的状态文件,绕过这个redeploy,所以第二步,就是来修改这个状态文件

修改状态文件

默认状态文件是在 ~/.obd/cluster/<deploy_name> 目录下的 .data 这个文件,vim打开之后,关注config_status这个变量,可以看到当前状态是NEED_REDEPLOY,需要将其修改为NEED_RESTART。

name: metadb
components:
  oceanbase-ce:
    hash: 736ac0f3379032dd41436c1b5a229f8d42b44e21
    version: 4.2.1.4
  obproxy-ce:
    hash: 0aed4b782120e4248b749f67be3d2cc82cdcb70d
    version: 4.2.1.0
  ocp-server-ce:
    hash: bd4512f9f708fb510d98f245b1be0b03a05e2cba
    version: 4.3.1
status: STATUS_RUNNING
config_status: NEED_REDEPLOY

修改完之后,就可以使用命令行重启集群

重启集群

重启集群时,使用 obd cluster restart <deploy_name> --wp 的方式进行重启,--wp 的含义是 --with-parameter,即用于让重启生效的配置项生效。

重启完成之后,此时 OCP 连接metadb的方式,就从原来的单一obproxy,修改为了通过10.10.10.10这个 VIP连接的方式了。

进一步,还可以进行测试,即任意关闭metadb的obproxy,看下OCP访问是否出现断开情况。

以上修改方式,都是基于OCP 4.2.x和4.3.x版本做的测试,未来相信官方也会对这块进行优化,使 OCP 在安装部署的时候,直接可以填写 VIP 或者 域名,从而真正达到 OCP 的高可用。


OceanBase 云数据库现已支持免费试用,现在申请,体验分布式数据库带来全新体验吧 ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2334817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

架构总览怎么写,才算工业级?

📈系统架构文档是整个项目最重要的起点,但很多人第一章就“写穿了”: 不是写得太细,就是没有重点。想要写出高质量、能协作、能传承的架构文档,这一篇会告诉你应该怎么做—— ✅ 架构总览的终极目标 明确边界、定义角色、画清数据流 别讲执行细节,别深入函数调用。 ✅ 架…

Datawhale 入驻 GitCode:以开源力量推动 AI 教育公平与创新

在 AI 技术深度重塑教育生态的今天&#xff0c;国内首个 AI 开源学习社区 —— Datawhale 正式加入 GitCode 开源平台&#xff01;作为覆盖全球 3000 高校、培养超百万 AI 人才的创新社区&#xff0c;Datawhale 将通过开源协作模式&#xff0c;为人工智能教育公平注入新动能&a…

ChatDBA:一个基于AI的智能数据库助手

今天给大家介绍一个基于 AI 大语言模型实现数据库故障诊断的智能助手&#xff1a;ChatDBA。 ChatDBA 是由上海爱可生信息技术股份有限公司开发&#xff0c;通过对话交互&#xff0c;提供数据库故障诊断、专业知识学习、SQL 生成和优化等功能&#xff0c;旨在提升 DBA 工作效率。…

MacOS中的鼠标、触控板的设置研究

一、背景和写这篇文章的原因 想搞清楚和配置好鼠标&#xff0c;比如解决好为什么我的滚动那么难用&#xff1f;怎么设置滚轮的方向跟windows相同&#xff1f;调整双击速度&#xff0c;调整鼠标滚轮左右拨动的"冷却时间"。 二、各种设置之详细解释 1. MacOS设置 -&…

asp.net core 项目发布到 IIS 服务器

目录 一、VS2022 发布 二、设置IIS服务 三、配置IIS管理器 &#xff08;一&#xff09;打开IIS管理器 &#xff08;二&#xff09;添加站台 &#xff08;三&#xff09;配置应用程式集区 四、安装ASP.NET Core Hosting Bundle 五、设定IIS的日志位置 六、测试 一、VS2…

【Nodebb系列】Nodebb笔记写入方案

NodeBB写入方案 前言 最近在整理以前记录的碎片笔记&#xff0c;想把它们汇总到NodeBB中&#xff0c;方便管理和浏览。但是笔记内容有点多&#xff0c;并且用发帖的形式写到NodeBB中会丢失时间信息&#xff0c;因此整理了一套NodeBB写入方案&#xff0c;大致流程如下&#xf…

计算机视觉——基于YOLOV8 的人体姿态估计训练与推理

概述 自 Ultralytics 发布 YOLOV5 之后&#xff0c;YOLO 的应用方向和使用方式变得更加多样化且简单易用。从图像分类、目标检测、图像分割、目标跟踪到关键点检测&#xff0c;YOLO 几乎涵盖了计算机视觉的各个领域&#xff0c;似乎已经成为计算机视觉领域的“万能工具”。 Y…

鸿蒙小案例---心情日记

效果演示 代码实现 import { router, window } from kit.ArkUIEntry Component struct Index {async aboutToAppear(): Promise<void> {let w await window.getLastWindow(getContext())w.setWindowSystemBarProperties({statusBarColor: #00C6C3,statusBarContentColo…

el-tree 实现树形菜单子级取消选中后父级选中效果不变

背景 在复杂的企业级管理系统中,树形菜单是一种常见的数据展示和交互组件。传统的树形菜单通常存在以下交互局限: 子节点取消选中时,父节点会自动取消选中无法满足复杂的权限分配和数据筛选场景实际应用场景: 组织架构权限管理多层级资源分配复杂的数据筛选与展示实现需求…

Java虚拟机——JVM(Java Virtual Machine)解析一

1.JVM是什么&#xff1f; 1.1 JVM概念 Java Virtual Machine (JVM) 是JDK的核心组件之一&#xff0c;它使得 Java 程序能够在任何支持 JVM 的设备或操作系统上运行&#xff0c;而无需修改源代码 JDK是什么&#xff0c;JDK和JVM是什么关系&#xff1f;1.Java IDE(Integrated …

【源码】SpringMvc源码分析

文章目录 SpringMVC 基础回顾​核心组件源码分析​DispatcherServlet​HandlerMapping​HandlerAdapter​ViewResolver​ 请求处理流程源码解析​ 在当今的 Java Web 开发领域&#xff0c;SpringMVC 无疑是最为广泛应用的 Web 框架之一。它以其强大的功能、灵活的配置以及高度的…

tcp特点+TCP的状态转换图+time_wait详解

tcp特点TCP的状态转换图time wait详解 目录 一、tcp特点解释 1.1 面向连接 1.1.1 连接建立——三次握手 1.1.2 连接释放——四次挥手 1.2 可靠的 1.2.1 应答确认 1.2.2 超时重传 1.2.3 乱序重排 1.2.4 去重 1.2.5 滑动窗口进行流量控制 1.3 流失服务&#xff08;字节…

高支模自动化监测解决方案

1.行业现状 高大模板支撑系统在浇筑施工过程中&#xff0c;诸多重大安全风险点进行实时自动化安全监测的解决方案主要监测由于顶杆失稳、扣件失效、承压过大等引起的支撑轴力、模板沉降、相对位移、支撑体系倾斜等参数变化。系统采用无线自动组网、高频连续采样&#xff0c;实时…

OpenCV 图形API(24)图像滤波-----双边滤波函数bilateralFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 应用双边滤波到图像。 该函数对输入图像应用双边滤波&#xff0c;如 http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Fil…

HarmonyOS中的多线程并发机制

目录 多线程并发1. 多线程并发概述2 多线程并发模型3 TaskPool简介4 Worker简介4.1 Woker注意事项4.2 Woker基本用法示例 5. TaskPool和Worker的对比5.1 实现特点对比5.2 适用场景对比 多线程并发 1. 多线程并发概述 并发模型是用来实现不同应用场景中并发任务的编程模型&…

【随手笔记】QT避坑一(串口readyRead信号不产生)

问题描述&#xff1a; 使用QT5.15.2版本 测试串口readyRead绑定槽函数&#xff0c;接收到数据后 不能触发 试了很多网友的程序&#xff0c;他们的发布版本可以&#xff0c;但是源码我编译后就不能触发&#xff0c;判断不是代码的问题 看到有人提到QT版本的问题&#xff0c;于…

【产品】ToB产品需求分析

需求分析流程 合格产品经理 帮助用户、引导用户、分析需求、判断需求、设计方案 不能苛求用户提出合理、严谨的需求&#xff0c;这不是用户的责任和义务&#xff0c;而应该通过自己的专业能力来完成需求的采集工作 #mermaid-svg-ASu8vocank48X6FI {font-family:"trebuche…

驱动开发硬核特训 · Day 10 (理论上篇):设备模型 ≈ 运行时的适配器机制

&#x1f50d; B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 总线驱动模型实战全解析 敬请关注&#xff0c;记得标为原始粉丝。 在 Linux 驱动开发中&#xff0c;设备模型&#xff08;Device Model&#xff09;是理解驱动架构的核心。而从软件工程…

flutter 打包mac程序 dmg教程

✅ 前提条件 ✅ 你已经在 macOS 上安装了 Android Studio Flutter SDK。 ✅ Flutter 支持 macOS 构建。 运行下面命令确认是否支持&#xff1a; Plain Text bash 复制编辑 flutter doctor ---## &#x1f9f1; 第一步&#xff1a;启用 macOS 支持如果是新项目&#xff0c;…

【数据结构与算法】——堆(补充)

前言 上一篇文章讲解了堆的概念和堆排序&#xff0c;本文是对堆的内容补充 主要包括&#xff1a;堆排序的时间复杂度、TOP 这里写目录标题 前言正文堆排序的时间复杂度TOP-K 正文 堆排序的时间复杂度 前文提到&#xff0c;利用堆的思想完成的堆排序的代码如下&#xff08;包…