如何替换OCP节点(一):使用oat | OceanBase应用实践

news2024/11/25 16:33:47

前言:

OceanBase Cloud Platform(简称OCP),是 OceanBase数据库的专属企业级数据库管理平台。

在实际生产环境中,OCP的安装通常是第一步,先搭建OCP平台,进而依赖OCP来创建、管理和监控我们的生产集群。但此后,可能由于机房调整或其他需求,可能会出现需要迁移或替换OCP服务器的情况。

这里,通过两篇文章分别介绍两种OCP节点的替换方法,一种是使用oat平台来替换,另一种就是使用antman脚本替换。(注:本文的环境的OCP负载均衡使用的f5,所以新的机器需要先配置f5,其他负载均衡场景同理)

环境背景:

大家如果有接触ob生产环境的经验的话,可以能会了解,前期版本,安装ocp的时候,需要安装ocp软件/metadba/obproxy三个docker包,后期ocp版本将db+proxy集成在了一个docker包里,oat的话只能纳管db+proxy

集成的metadb,分开的情况还需要使用antman脚本来替换。

>本篇文章主要介绍使用oat替换,下面说下我的软件信息

1.ocp软件:ocp-all-in-one:3.3.3-20220906114643

2.metadb+proxy:OB2277_OBP320_x86_20220429 

3.oat:4.1.1_20230519_x86

操作过程:

(一)环境检查/准备

  • 检查替换机器环境,包括分盘,创建admin用户,安装docker软件等,安装好后检查下。
cd /root/t-oceanbase-antman/clonescripts/
sh precheck.sh -m ocp
  • 安装oat平台
1.	上传oat软件包并解压
Tar -xvf oat-all-in-one-x86-411.tar
2.	Load oat包
csocpth:~ # cd oat-all-in-one-x86/
csocpth:~/oat-all-in-one-x86 # docker load -i  oat_4.1.1_20230519_x86.tgz
06f6bfff6616: Loading layer [==================================================>]  230.8MB/230.8MB
e1505344677e: Loading layer [==================================================>]  3.072kB/3.072kB
01ede0eada53: Loading layer [==================================================>]  690.2MB/690.2MB
f5323b31fcbe: Loading layer [==================================================>]  8.704kB/8.704kB
07f573d3f476: Loading layer [==================================================>]  229.9MB/229.9MB
d9994e0d00fd: Loading layer [==================================================>]  156.3MB/156.3MB
aaaf3b3d3500: Loading layer [==================================================>]  56.32kB/56.32kB
Loaded image: reg.docker.alibaba-inc.com/oceanbase/oat:4.1.1_20230519_x86
csocpth:~/oat-all-in-one-x86 # docker images
REPOSITORY                                 TAG                  IMAGE ID            CREATED             SIZE
reg.docker.alibaba-inc.com/oceanbase/oat   4.1.1_20230519_x86   7efa444ce0b9        3 weeks ago         1.28GB
3.	运行oat
csocpth:~/oat-all-in-one-x86 # oat_image=`docker images | grep oat | head -1 | awk '{printf $1":"$2"\n"}'`
csocpth:~/oat-all-in-one-x86 # docker run --name=oat -d -e DEPLOY_MODE=generic -v /home/oat/data_dir:/data -v /home/oat/db_dir:/var/lib/mysql -p 7000:7000 --restart on-failure:5 $oat_image
7ea6e4d2b930445afddb026a794f0e7ca533d41fc5e5f53a63d324159cd16aec
# 观察启动日志,确保无报错信息
docker logs -f oat

####前台登录oat,使用[ip]:7000连到前台页面,第一次登录初始密码aaAA11__  输入后设置密码#####

  • 确保替换机器及需要替换机器的ocp平台的机器的hostname都设置了,可以hostname -i 检查一下。
  • 检查ocp组件信息
OCP-3:~/t-oceanbase-antman # docker ps
CONTAINER ID        IMAGE                                                                      COMMAND                  CREATED             STATUS              PORTS               NAMES
f5a1125aa84a        reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:3.3.3-20220906114643   "/usr/bin/supervisor…"   5 months ago        Up 8 weeks                              ocp
65a0722edbea        reg.docker.alibaba-inc.com/antman/ob-docker:OB2277_OBP320_x86_20220429     "/usr/bin/supervisor…"   5 months ago        Up 5 months                             metadb
#####oat纳管meta有问题,可以修改meta的docker名字,docker rename META_OB_ZONE_2 metadb    
  • 检查ocpmeta集群信息
OCP-3:~/t-oceanbase-antman # mysql -h111.11.11.112  -P2883 -uroot@sys#obcluster  -p'CqVgg9}Aut' -Doceanbase

MySQL [oceanbase]> select a.svr_ip,a.zone,b.name,b.info from __all_server a,__all_zone b where a.zone=b.zone and b.name in ('idc','region');
+---------------+----------------+--------+------+
| svr_ip        | zone           | name   | info |
+---------------+----------------+--------+------+
| 111.11.11.111 | META_OB_ZONE_1 | idc    | c6   |
| 111.11.11.111 | META_OB_ZONE_1 | region | jn   |
| 111.11.11.112 | META_OB_ZONE_2 | idc    | c6   |
| 111.11.11.112 | META_OB_ZONE_2 | region | jn   |
| 111.11.11.113 | META_OB_ZONE_3 | idc    | c6   |
| 111.11.11.113 | META_OB_ZONE_3 | region | jn   |
+---------------+----------------+--------+------+
6 rows in set (0.00 sec)
###确认需要替换机器的zone,idc。oat纳管ocp机器时机房和地域需要填写一致

SHOW PARAMETERS LIKE 'obconfig_url'
#####确认obconfig_url设置不是要被替换掉的机器吧,正常有负载均衡的ocp设置的都是负载均衡的ip###

(二)oat纳管metadb和ocp产品

  • 通过oat将ocp机器和要替换的机器纳管

1686985375

1686985436

#####机房和地域信息与集群中的信息匹配

1686985469

######添加后的机器用途应ob产品服务和observer都有的

  • 将需要纳管的组件的镜像包传入oat本地,ps:(纳管metadb需要输入metadb的sys租户的root密码,如果没有的话可以找安装ocp时的antman目录下有getpass.sh的脚本执行下默认密码会输出)
###复制到oat的本地目录
cp OB2277_OBP320_x86_20220429.tar /home/oat/data_dir/images/
cp ocp333.tar.gz /home/oat/data_dir/images/ 
  • 先纳管组件,后纳管ocp产品,纳管时会有镜像本地扫描,扫描之后就能识别到刚才传的镜像包

1686985721

1686985742

1686985808

1686985829

  • 纳管ocp

1686985967

1686986068

(三)新节点加入

  • 刚纳管的ocp产品添加新的机器

1686986183

1686986233

1686986302

1686986329

#####等任务跑完,就可以去替换机器上看下,ocp的docker就起来了,可以通过8080去使用该节点登录ocp的前台页面了

csocpth:~ # docker ps
CONTAINER ID        IMAGE                                                                      COMMAND                  CREATED             STATUS              PORTS                              NAMES
bdd7deede099        reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:3.3.3-20220906114643   "/usr/bin/supervisor…"   17 seconds ago      Up 15 seconds                                          ocp
  • 纳管的meta库加入新机器,PS:(该版本oat的metadb组件在添加新机器的时候有报错,文末会有分享处理办法)

1686986464

1686986505

检查集群中新的节点已经加进来了,meta库的docker也起来了,并且登录集群可以看到server也起来。

csocpth:~ # docker ps
CONTAINER ID        IMAGE                                                                      COMMAND                  CREATED             STATUS              PORTS                              NAMES
c143f7252956        reg.docker.alibaba-inc.com/antman/ob-docker:OB2277_OBP320_x86_20220429     "/usr/bin/supervisor…"   4 minutes ago       Up 4 minutes                                           metadb
bdd7deede099        reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:3.3.3-20220906114643   "/usr/bin/supervisor…"   11 minutes ago      Up 11 minutes                                          ocp
MySQL [oceanbase]> select * from __all_server;
+----------------------------+----------------------------+---------------+----------+----+----------------+------------+-----------------+--------+-----------------------+--------------------------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
| gmt_create                 | gmt_modified               | svr_ip        | svr_port | id | zone           | inner_port | with_rootserver | status | block_migrate_in_time | build_version                                                                        | stop_time | start_service_time | first_sessid | with_partition | last_offline_time |
+----------------------------+----------------------------+---------------+----------+----+----------------+------------+-----------------+--------+-----------------------+--------------------------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
| 2023-01-08 12:17:49.336751 | 2023-01-08 12:18:04.683418 | 111.11.11.111 |     2882 |  1 | META_OB_ZONE_1 |       2881 |               1 | active |                     0 | 2.2.77_20211210235205-46f61a1b0a27dfa2ea1f65366cbedd77e5c4e785(Dec 11 2021 00:24:34) |         0 |   1673151479695641 |            0 |              1 |                 0 |
| 2023-01-08 12:17:49.373647 | 2023-01-08 12:18:06.015801 | 111.11.11.112 |     2882 |  2 | META_OB_ZONE_2 |       2881 |               0 | active |                     0 | 2.2.77_20211210235205-46f61a1b0a27dfa2ea1f65366cbedd77e5c4e785(Dec 11 2021 00:24:34) |         0 |   1673151482026856 |            0 |              1 |                 0 |
| 2023-01-08 12:17:49.339787 | 2023-01-08 12:18:06.037221 | 111.11.11.113 |     2882 |  3 | META_OB_ZONE_3 |       2881 |               0 | active |                     0 | 2.2.77_20211210235205-46f61a1b0a27dfa2ea1f65366cbedd77e5c4e785(Dec 11 2021 00:24:34) |         0 |   1673151482049381 |            0 |              1 |                 0 |
| 2023-06-14 15:37:24.042744 | 2023-06-14 15:37:36.893865 | 143.33.33.32  |     2882 |  4 | META_ZONE_4    |       2881 |               0 | active |                     0 | 2.2.77_20211210235205-46f61a1b0a27dfa2ea1f65366cbedd77e5c4e785(Dec 11 2021 00:24:34) |         0 |   1686728254897197 |            0 |              0 |                 0 |
+----------------------------+----------------------------+---------------+----------+----+----------------+------------+-----------------+--------+-----------------------+--------------------------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+

(四)旧节点剔除

1686986713

####OCP节点剔除同理##########

报错记录及处理:

  • 添加新机器到metadb组件的爆粗

1686986981

需要在oat的docker里去修改上图的python脚本,修改完后重启下相关组件

1686987049

[root@7ea6e4d2b930 oat]# supervisorctl status
airflow_scheduler                RUNNING   pid 266, uptime 1 day, 1:41:52
backend                          RUNNING   pid 267, uptime 1 day, 1:41:52
[root@7ea6e4d2b930 oat]# supervisorctl restart airflow_scheduler
airflow_scheduler: stopped
airflow_scheduler: started
[root@7ea6e4d2b930 oat]# supervisorctl status
airflow_scheduler                RUNNING   pid 23812, uptime 0:00:14
backend                          RUNNING   pid 267, uptime 1 day, 1:42:19

总结:

到这里使用oat去替换ocp机器的操作就结束了,可能大家看这篇文章感觉还比较简单,但是整个过程来回做了好几遍,为了别人以后少踩坑,所以写这篇文章分享。ocp软件的docker替换基本没有问题,主要是metadb的替换,其实从上面可以看出oat替换ocp的时候,新加机器是在metadb中新创建了一个zone,然后再把被替换机器下掉,其中还涉及新建资源池修改Locality,增加副本数等操作。其实使用antman脚本的话这个步骤就不太一样,他是将新机器加入到需要替换机器的同一个zone内,然后做同zone内unit的迁移,然后把被替换的机器下线,这个咱们在下篇文章中介绍。

行之所向,莫问远方。

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

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

相关文章

docker升级mysql

一、首选备份原数据库所有数据 二、在Docker中查看正在运行的MySQL容器名称,可以使用以下命令: docker ps --filter "namemysql" 三、查看当前docker中正在运行mysql的版本 docker exec -it qgz-mysql mysql -V 可以看到当前运行的版本是8.…

数据传输——差错控制

一、检错纠错 1、通信链路不是完全理想的,在传输的过程中可能会产生比特差错。 2、误码率:传输错误的比特占所传输比特总数的比率。 3、检错:能自动发现差错。 4、纠错:不仅能发现差错而且能自动纠正差错。 5、码字(codeword…

Selenium打开外部应用程序的弹窗处理

问题 selenium自动化操作页面跳转到外部应用程序进行下载等操作,各种窗口处理方式无法解决 原因 该窗口属于浏览器窗口,与访问页面无关(已经脱离页面操作层面) 解决 selenium启动浏览器时,对浏览器进行相关窗口设…

Elasticsearch的安装与配置

注意:elasticsearch 禁止安装在/root路径下! 1、创建用户组 groupadd elastic 2、创建用户 useradd es -d /home/es -g elastic echo es | passwd es --stdin 3、给新创建的用户进行授权 chown -R es:elastic /home/es chmod -R 775 /home/es 4…

sklearn机器学习实战——支持向量机四种核函数分类任务全过程(附完整代码和结果图)

sklearn机器学习实战——支持向量机四种核函数分类任务全过程(附完整代码和结果图) 关于作者 作者:小白熊 作者简介:精通python、matlab、c#语言,擅长机器学习,深度学习,机器视觉,目…

Nginx反向代理配置与负载均衡配置

简介:整理自黑马程序员苍穹外卖的第11节 nginx是什么? nginx的好处 nginx反向代理配置方式 nginx负载均衡的配置方式 nginx负责均衡策略

等保2.0测评 — WebSphere 中间件

查看版本信息: 登录websphere管理平台首页就能看到版本信息 可以进入\usr\IBM\WebSphere\AppServer\bin 下执行./versionInfo.sh查看版本 一、身份鉴别 a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有…

如何使用printf实现整齐美观的输出?

在编程中,尤其是在涉及控制台输出的应用场景中,我们需要让输出的信息更加整齐美观。printf 是 C 语言中用于格式化输出的强大工具之一。通过合理的格式化控制符,我们可以轻松地控制输出的宽度、对齐方式、填充字符等,从而达到整齐…

RiproV9.0主题wordpress主题免扩展可二开PJ版/WordPress博客主题Ripro全解密无后门版本

🔥🎉 全新RiPro9.0开源版发布 —— 探索无限可能🚀🌐 今天,我很高兴能与大家分享一个重磅资源——RiPro9.0开源版!这不是一个普通的版本,而是一个经过精心打磨、全面解密的力作。🔍…

使用KEIL5,不复位MCU,调试到程序运行到卡住之处

文章目录 前言步骤1步骤2步骤3步骤4步骤5 前言 经常有朋友在开发中遇到这样的窘境,当单片机程序运行异常以后,由于调试信息做得并不是很全面,导致相应的问题场景非常难分析。当时的你肯定会叹息道:“要是我一直插着仿真器就好了,…

【Concept Sliders】通过拖到滑块来精确控制特定图像特征

Concept Sliders 是一种用于扩散模型(如 Stable Diffusion)的LoRA 适配器,允许用户在图像生成过程中对特定概念进行精细控制。与依赖提示词生成图像的传统方法不同,Concept Sliders 通过引入可调整的“滑块”,用户可以…

前端读取本地表格数据

vue3tsvite 无后端提供数据的情况下,前端读取本地表格数据,并将数据放入页面结构中 展示在网页中 记得先安装npm install xlsx 目录 read_xlsx.ts import * as XLSX from xlsx; //将行,列转换 function transformSheets(sheets: { [key: string]: any })…

技术架构的演进之路

技术架构的演进之路 我们以电商系统的技术架构发展为例 文章目录 1. 单体架构2. 应用数据分离架构3. 应用服务集群架构4. 读写分离、主从分离架构5. 冷热分离架构6. 垂直分库架构7. 微服务架构8. 容器编排架构 1. 单体架构 在前期用户访问量很少的时候,没有对性能、安全等提出…

自然语言处理(NLP)论文数量的十年趋势:2014-2024

引言 近年来,自然语言处理(NLP)已成为人工智能(AI)和数据科学领域中的关键技术之一。随着数据规模的不断扩大和计算能力的提升,NLP技术从学术研究走向了广泛的实际应用。通过观察过去十年(2014…

uniapp中添加colorUI的过程

1、先将colorUI文件粘到项目中去 2、common中添加两个文件 3、App文件中引入这两个文件

毕业设计选题:基于ssm+vue+uniapp的健身管理系统小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

2024年软件设计师中级(软考中级)详细笔记【5】软件工程基础知识下(分值10+)

第5章软件工程 目录 前言第5章 软件工程基础知识(下)5.5 系统测试5.5.1 系统测试与调试5.5.2 传统软件的测试策略5.5.5 测试方法5.5.5.1 黑盒测试5.5.5.2 白盒测试白盒测试McCabe度量法伪代码白盒测试McCabe 5.6 运行和维护知识【以背为主】5.6.2 系统维…

Asahi Linux通过大量变通方法实现在M系列Mac上支持AAA级游戏

如果您正在运行 Asahi Linux 并希望在您的 M 系列 Mac 上玩游戏,那么有一个好消息要告诉您,Asahi Linux 项目将继续推出新功能。 2 月份它在 Mac 上Apple Silicon 实现了OpenGL 4.6 和 OpenGL ES 3.2 兼容,现在又在游戏方面取得了进展。但您可…

WRN: 宽度残差网络(论文复现)

WRN: 宽度残差网络(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 WRN: 宽度残差网络(论文复现)概述模型结构核心逻辑实验训练与测试在线部署使用方式 概述 本文复现论文 Wide Residual Networks提出的深度神经网…

软件狗加密的高安全性

软件狗加密,即使用软件加密狗对软件进行加密保护的过程,是一种软硬件结合的加密方式。以下是对软件狗加密的详细解析: 一、软件加密狗的基本概念 软件加密狗,也称为硬件加密锁或USB密钥,是一种用于保护软件和数据安全的…