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

背景

许多用户都会借助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: defaultpackage_hash: bd4512f9f708fb510d98f245b1be0b03a05e2cbaversion: 4.3.1release: 20240805192406.el7depends:- oceanbase-ce- obproxy-ceservers:- name: server2ip: 11.161.xx.xxglobal:home_path: /home/admin/ocpsoft_dir: /home/admin/ocp/softwarelog_dir: /home/admin/ocp/logsocp_site_url: http://11.161.xx.xx:8080port: 8080admin_password: xxxxxxmemory_size: 6Gmanage_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: defaultpackage_hash: bd4512f9f708fb510d98f245b1be0b03a05e2cbaversion: 4.3.1release: 20240805192406.el7depends:- oceanbase-ce- obproxy-ceservers:- name: server2ip: 11.161.xx.xxglobal:home_path: /home/admin/ocpsoft_dir: /home/admin/ocp/softwarelog_dir: /home/admin/ocp/logsocp_site_url: http://11.161.xx.xx:8080port: 8080admin_password: xxxxxxmemory_size: 6Gmanage_info:machine: 10jdbc_url: jdbc:oceanbase://10.10.10.10:2883/meta_databaseocp_meta_tenant:tenant_name: ocp_metaocp_meta_username: root # User to use under ocp meta tenantocp_meta_password: xxxxxx # Password used to connect to ocp meta tenantocp_meta_db: meta_database # Database used to store ocp meta dataocp_monitor_tenant:tenant_name: ocp_monitorocp_monitor_username: root # User to use under ocp monitor tenantocp_monitor_password: xxxxxx # Password used to connect to ocp meta tenantocp_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: 736ac0f3379032dd41436c1b5a229f8d42b44e21version: 4.2.1.4obproxy-ce:hash: 0aed4b782120e4248b749f67be3d2cc82cdcb70dversion: 4.2.1.0ocp-server-ce:hash: bd4512f9f708fb510d98f245b1be0b03a05e2cbaversion: 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.mzph.cn/diannao/77410.shtml

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

相关文章

SpringDoc【使用详解】

SpringDoc使用详解 一、何为SpringDoc二、概念解释三、SpringDoc使用2.1简单集成2.2 配置SpringDoc2.2.1 yml方式配置2.2.2配置文档信息 2.3配置文档分组2.4使用注解2.4.1 Tag2.4.2 Operation2.4.3 Schema2.4.4 NotNull2.4.5 Parameter2.4.6 Parameters2.4.7 ApiResponses 和Ap…

PHP 阿里云oss 使用指南

1.介绍 把图片放到阿里云上的空间上&#xff0c;可以使用cdn加速。 可以在程序里直接调用 要使用阿里云 oss sdk &#xff0c;请先到阿里云下载 或用 copmposer 安装 相关链接&#xff1a; 安装OSS PHP SDK_对象存储(OSS)-阿里云帮助中心 composer require aliyuncs/oss…

【AI提示词】常青笔记生成器

提示说明 生成适用于多个场景和领域的常青笔记&#xff0c;满足“常青笔记”的核心特性和结构。 提示词 # 角色: 常青笔记生成器## 角色简介: - 作者: xxx - 版本号: 1.0 - 更新时间: xxx - 语言: 中文## 定位: - &#x1f3af; 生成适用于多个场景和领域的常青笔记&#x…

在 Lua 中,`for` 和 `while` 是两种核心的循环结构的详细用法

在 Lua 中&#xff0c;for 和 while 是两种核心的循环结构&#xff0c;用于实现重复执行逻辑。以下是它们的详细用法、进阶技巧及注意事项&#xff1a; 在 Lua 中&#xff0c;for 和 while 是两种核心的循环结构的详细用法—目录 一、for 循环1. 数值 for 循环基础语法&#xf…

A2DP(Advanced Audio Distribution Profile)是蓝牙协议栈中用于音频传输的一个标准化协议

A2DP&#xff08;Advanced Audio Distribution Profile&#xff09;是蓝牙协议栈中用于音频传输的一个标准化协议&#xff0c;主要用于高质量音频流的无线传输。以下是A2DP协议的详细信息&#xff1a; 定义 A2DP协议允许音源设备&#xff08;Source&#xff0c;简称SRC&#…

STM32_USB

概述 本文是使用HAL库的USB驱动 因为官方cubeMX生成的hal库做组合设备时过于繁琐 所以这里使用某大神的插件,可以集成在cubeMX里自动生成组合设备 有小bug会覆盖生成文件里自己写的内容,所以生成一次后注意保存 插件安装 下载地址 https://github.com/alambe94/I-CUBE-USBD-Com…

【文献阅读】Capabilities of Gemini Models in Medicine

​ Google DeepMind Google Research 发表于 2024-04-29 相关链接&#xff1a; 数据集&#xff1a;https://huggingface.co/datasets/katielink/med-gemini-medqa-relabeled 注&#xff1a;长EHR是长的电子健康记录&#xff08;Electronic Health Record&#xff09; 未开…

网络安全小知识课堂(最终完结版)

网络安全入门 &#xff1a;从 “小白” 到 “守护者” 的蜕变之旅 写在完结之际 历经 13 篇的深度探索&#xff0c;我们从 DDoS 攻击的 “流量洪水” 一路闯关到 HTTPS 的 “加密堡垒”&#xff0c;揭开了网络安全世界的层层面纱。感谢每一位读者的陪伴与互动&#xff0c;你们…

Php laravel 留言板 curd 实战

1. 项目创建 首先我们用composer创建项目 &#xff0c; composer会根据当前的php版本 帮我们选择支持的最高版本 composer create-project --prefer-dist laravel/laravel myblog laravel新版本比较激进 &#xff0c;需要最低 php7 支持 2. 项目配置 数据库配置 &#xff0c…

HTTP 压力测试工具autocannon(AI)

简介 autocannon 是一款基于 Node.js 的高性能 HTTP 压力测试工具&#xff0c;适用于评估 Web 服务的并发处理能力和性能瓶颈。 一、工具特点 高性能‌&#xff1a;利用 Node.js 异步非阻塞机制模拟高并发请求‌。‌实时监控‌&#xff1a;测试过程中动态展示请求统计和性能…

LVM 扩容详解

目录 一、LVM扩容 1. 查看磁盘分区情况&#xff1a; 2. 查看pv、vg、lv 情况 3. 将新硬盘分区初始化 4. 将初始化后的分区添加到VG中 5. 查看逻辑卷的设备路径 6. VG分配给lv 二、扩展文件系统 1.确认文件系统类型 三、检验 一、LVM扩容 1. 查看磁盘分区情况&#xff1a; …

每日一题(小白)数组娱乐篇21

由于题意可知我们是要将对应的数字转换为英文&#xff0c;我们要考虑两点一个是进制的转换&#xff0c;也就是类似于我们的十进制一到9就多一位&#xff0c;这里的进制就是Z进制也就是27进制一旦到26下一位则进位&#xff1b;另一方面要考虑数字的转换也就是1~26对应A~Z。解决上…

python爬虫:喜马拉雅案例(破解sign值)

声明&#xff1a; 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 根据上一篇文章&#xff0c;我们破解了本网站的&#xff0c;手机号和密码验证&#x…

深入探讨:Spring 如何接入 DeepSeek​

​在当今数字化浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;技术的迅猛发展深刻地改变着各个领域的技术格局。Java 作为一种广泛应用于企业级开发的编程语言&#xff0c;其生态系统也在不断演进以适应 AI 技术的融入。Spring 框架&#xff0c;作为 Java 生态中的中流…

VSCode运行,各类操作缓慢,如何清理

VSCode写代码&#xff0c;随着项目逐步进展&#xff0c;代码量在增加&#xff0c;依赖的第三方头文件也在增加&#xff0c; 先是发现代码提示的速度变慢&#xff0c; 后来格式化代码速度太慢 然后c/c代码的语法检查有时候压根就失败&#xff0c;来个错误提示 还有source contro…

Elasticsearch:加快 HNSW 图的合并速度

作者&#xff1a;来自 Elastic Thomas Veasey 及 Mayya Sharipova 过去&#xff0c;我们曾讨论过搜索多个 HNSW 图时所面临的一些挑战&#xff0c;以及我们是如何缓解这些问题的。当时&#xff0c;我们也提到了一些计划中的改进措施。本文正是这项工作的成果汇总。 你可能会问…

人事|人事管理系统|基于Springboot+vue的人事管理系统设计与实现(源码+数据库+文档)

人事管理系统 目录 基于Springboot的人事管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员登录 2、员工管理 3、公告信息管理 4、公告类型管理 5、培训管理 6、培训类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新…

2.4GHz射频前端噪声系数优化架构

2.4GHz射频前端电路架构由信号处理链路、硬件模块及性能规范构成&#xff0c;其系统组成与参数要求如下&#xff1a; 一、信号发射链路‌ 数字基带信号通过DAC转换为模拟信号‌ 调制电路将信号加载至本地振荡器生成的2.4GHz载波‌ 功率放大器将信号强度提升至20-25dBm范围‌ …

开源 LLM 应用开发平台 Dify 全栈部署指南(Docker Compose 方案)

开源 LLM 应用开发平台 Dify 全栈部署指南&#xff08;Docker Compose 方案&#xff09; 一、部署环境要求与前置检查 1.1 硬件最低配置 组件要求CPU双核及以上内存4GB 及以上磁盘空间20GB 可用空间 1.2 系统兼容性验证 ✅ 官方支持系统&#xff1a; Ubuntu 20.04/22.04 L…

Trae AI 保姆级教程:从安装到调试全流程指南

Trae AI 保姆级教程&#xff1a;从安装到调试全流程指南 Trae AI 是字节跳动推出的一款 AI 原生集成开发环境(IDE)&#xff0c;专为中文开发者设计&#xff0c;集成了 Claude 3.5 和 GPT-4o 等先进 AI 模型&#xff0c;支持通过自然语言交互实现代码生成、项目构建与调试。本教…