OceanBase中扩容OCP节点step by step
许多用户在开始使用OceanBase时部署OCP,通常选择单节点部署。但随着后续业务规模的不断扩大,会开始担忧单节点OCP在面对故障时可能丧失对集群运维管控的连续性。鉴于此,会将现有的单节点OCP扩展至多节点部署,以此来确保OCP服务的高可用性。
目前,暂时还无法直接在OCP页面上执行扩容操作,需要使用obd命令对OCP进行扩展,扩展的方式也相对比较简单,主要分以下几个步骤:
- 编辑配置文件
- obd 命令扩容
- 修改配置(可选)
下面就以一个现有的OCP环境,进行一次扩容操作演示(适用OCP4.2.x和4.3.x版本)。
环境介绍
使用obd cluster display <deploy_name> 查看当前OCP环境,这里的 deploy_name 为 metadb
$obd cluster display metadb
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer 192.168.10.110:2881 ok
Wait for observer init ok
+--------------------------------------------------+
| observer |
+----------------+---------+------+-------+--------+
| ip | version | port | zone | status |
+----------------+---------+------+-------+--------+
| 192.168.10.110 | 4.2.1.4 | 2881 | zone1 | ACTIVE |
+----------------+---------+------+-------+--------+
obclient -h192.168.10.110 -P2881 -uroot -p'xxxxxx' -Doceanbase -Acluster unique id: 254f1cb5-7d98-515d-a827-2e47f1fc10ee-18ec0a869e7-04010204Connect to obproxy ok
+--------------------------------------------------+
| obproxy |
+----------------+------+-----------------+--------+
| ip | port | prometheus_port | status |
+----------------+------+-----------------+--------+
| 192.168.10.110 | 2883 | 2884 | active |
+----------------+------+-----------------+--------+
obclient -h192.168.10.110 -P2883 -uroot@proxysys -p'xxxxxx' -Doceanbase -AConnect to ocp-server-ce ok
+-----------------------------------------------------------+
| ocp-server-ce |
+----------------------------+----------+----------+--------+
| url | username | password | status |
+----------------------------+----------+----------+--------+
| http://192.168.10.10:8080 | admin | xxxxxxxx | active |
+----------------------------+----------+----------+--------+
Trace ID: 328b2ec0-7592-11ef-93a9-00163e046d79
If you want to view detailed obd logs, please run: obd display-trace 328b2ec0-7592-11ef-93a9-00163e046d79
从上面可以看出,这是一个单节点的OCP,部署在 192.168.10.10 这台机器上。下面就在这个单节点基础上,再为OCP扩出一个节点,新节点的 ip 地址为 192.168.10.11。
编辑配置文件
想要增加一个OCP节点,需要先新增一个OCP的配置文件,配置文件的内容相对简单,需要指定新增的组件名 ocp-server-ce,然后在 servers 里添加新增OCP的名称和ip地址,以及安装 OCP 的 home_path。
$ vim ocp_config.yaml
ocp-server-ce:servers:- name: server2ip: 192.168.10.11server2:home_path: /home/admin/ocp
home_path最好保证和已安装的OCP目录相同,可使用 obd cluster edit-config <deploy_name> 查看ocp-server-ce 组件对应的 home_path。
执行扩容命令
在上一步编辑完配置文件之后,就可以执行 obd cluster scale_out <deploy_name> -c ocp_config.yaml 进行扩容,扩容结果如下:
$obd cluster scale_out metadb -c ocp_config.yaml
Cluster status check ok
Get local repositories and plugins ok
Open ssh connection ok
+-----------------------------------------------------------------------------------------+
| Packages |
+---------------+---------+--------------------+------------------------------------------+
| Repository | Version | Release | Md5 |
+---------------+---------+--------------------+------------------------------------------+
| ocp-server-ce | 4.3.1 | 20240805192406.el7 | bd4512f9f708fb510d98f245b1be0b03a05e2cba |
+---------------+---------+--------------------+------------------------------------------+
Repository integrity check ok
Load param plugin ok
Generate ocp server configuration ok
Parameter check ok
Initializes ocp-server-ce work home ok
Remote ocp-server-ce-4.3.1-20240805192406.el7-bd4512f9f708fb510d98f245b1be0b03a05e2cba repository install ok
Remote ocp-server-ce-4.3.1-20240805192406.el7-bd4512f9f708fb510d98f245b1be0b03a05e2cba repository lib check !!
Try to get lib-repository
install openjdk-jre-1.8.0_322 for local ok
Remote openjdk-jre-1.8.0_322-b09.el7-051aa69c5abb8697d15c2f0dcb1392b3f815f7ed repository install ok
Remote ocp-server-ce-4.3.1-20240805192406.el7-bd4512f9f708fb510d98f245b1be0b03a05e2cba repository lib check ok
Search plugins ok
Load cluster param plugin ok
Check before start ocp-server ok
Start ocp-server-ce ok
ocp-server-ce program health check ok
Start ocp-server-ce ok
ocp-server-ce program health check ok
Connect to ocp-server-ce ok
Initialize ocp-server-ce ok
succeed
Execute ` obd cluster display metadb ` to view the cluster status
Trace ID: b63a04d8-7594-11ef-955b-00163e046d79
If you want to view detailed obd logs, please run: obd display-trace b63a04d8-7594-11ef-955b-00163e046d79
扩容完成之后,我们就可以登陆网页确认是否可以登陆到OCP,http://192.168.10.11:8080

同时查看配置文件,可以看到新增节点已经加入到了OCP的配置文件中
ocp-server-ce:style: defaultpackage_hash: bd4512f9f708fb510d98f245b1be0b03a05e2cbaversion: 4.3.1release: 20240805192406.el7depends:- oceanbase-ce- obproxy-ceservers:- name: server1ip: 192.168.10.10- name: server2ip: 192.168.10.11global:home_path: /home/admin/ocpsoft_dir: /home/admin/ocp/softwarelog_dir: /home/admin/ocp/logsocp_site_url: http://192.168.10.10:8080port: 8080admin_password: xxxxxxxxmemory_size: 6Gmanage_info:machine: 10server2:home_path: /home/admin/ocp
修改配置(可选)
在执行完扩容之后,会有多个OCP,为了真正实现高可用,很多用户会再设置一个负载均衡,使用VIP或者域名的方式,代理上面 192.168.10.10 和 192.168.10.11 这两个ip。这样在任何一个OCP故障之后,通过访问代理依然可以访问。
不过在OCP中还有一个参数也需要修改下,即 ocp.site.url,这个是外部访问OCP网站的地址。未修改之前还是 192.168.10.10,但是当这台机器上的OCP出现故障时,OCP上的很多运维操作会无法执行,包括添加主机等。
修改方式即登陆OCP,系统管理 -> 系统参数 -> 搜索ocp.site.url,例如VIP为10.10.10.10,即修改后为:http://10.10.10.10:8080。
修改完成之后需要重启OCP生效,使用命令 obd cluster restart <deploy_name> -c ocp-server-ce 重启。
相关文章:
OceanBase中扩容OCP节点step by step
许多用户在开始使用OceanBase时部署OCP,通常选择单节点部署。但随着后续业务规模的不断扩大,会开始担忧单节点OCP在面对故障时可能丧失对集群运维管控的连续性。鉴于此,会将现有的单节点OCP扩展至多节点部署,以此来确保OCP服务的高…...
国家人工智能创新应用先导区数据及城市人工智能先导区准自然实验数据(2006-2023年)
一、测算方式:参考C刊《当代财经》冯婉昕(2024)老师的做法,本文的核心解释变量为国家人工智能创新应用先导区政策 (AI)。企业的金融资产配置是企业生产经营的内生变量,因此,如果选择…...
搜维尔科技:感受、握持、推动、连接和挤压虚拟物体,SenseGlove触觉反馈手套拥有先进的触觉技术、一流的可用性和功能
感受、握持、推动、连接和挤压虚拟物体,SenseGlove触觉反馈手套拥有先进的触觉技术、一流的可用性和功能 感受、握持、推动、连接和挤压虚拟物体,SenseGlove触觉反馈手套拥有先进的触觉技术、一流的可用性和功能...
C++中的引用详解
C中的引用详解 什么是引用 引用是一种取别名的机制,用于为变量提供一个新的名字。在C中,引用的语法使用&符号。引用允许我们以一种更安全和直观的方式来操作变量。 为什么要使用指针 在C中,虽然引用提供了一些优势,但指针仍…...
软考中级 - 软件设计师学习笔记 - 1.3 计算机安全
1.3.1 安全威胁 计算安全:指的是计算机资产安全,是要保证这些计算机资产不受自然和人为的有害因素的威胁和危害。 1.3.2 加密技术和认证技术 加密技术:对称加密(私有密钥加密)、非对称加密(公开密钥加密)。对称加密(私钥/私有密…...
Unity3D相关知识点总结
Unity3D使用的是笛卡尔三维坐标系,并且是以左手坐标系进行展示的。 1.全局坐标系(global) 全局坐标系描述的是游戏对象在整个世界(场景)中的相对于坐标原点(0,0,0)的位置…...
牛顿迭代多维+原理推导
这是两个函数了两个变量的情况,对于三个函数两个变量,牛顿迭代的雅可比矩阵不能求逆, 右边的增量的求解就不能用这个公式了呢。对于有逆矩阵但不能求逆的公式,这个逆矩阵是求解线性方程时出现的,就可用不求逆的方法解…...
[自然语言处理]RNN
1 传统RNN模型与LSTM import torch import torch.nn as nntorch.manual_seed(6)# todo:基础RNN模型 def dem01():参数1:input_size 每个词的词向量维度(输入层神经元的个数)参数2:hidden_size 隐藏层神经元的个数参数3:…...
MySQL(B站CodeWithMosh)——2024.10.11(14)
ZZZZZZ目的ZZZZZZ代码ZZZZZZ重点ZZZZZZ操作(非代码,需要自己手动) 8- CASE运算符The CASE Operator_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1UE41147KC?p62&vd_sourceeaeec77dfceb13d96cce76cc299fdd08 在sql_store中&am…...
Transformer的预训练模型
Transformer的预训练模型有很多,其中一些在自然语言处理(NLP)和计算机视觉等领域取得了巨大成功。以下是一些主要的Transformer预训练模型: 1. BERT (Bidirectional Encoder Representations from Transformers) 简介: BERT 是谷歌推出的双向Transformer模型,专注于编码器…...
手撕单例模式
在Go语言中实现单例模式,通常需要确保一个类只有一个实例,并且提供一个全局访问点。Go语言本身没有类的概念,但可以通过结构体和函数来模拟这种行为。下面是一个简单的手撕单例模式的实现示例: 懒汉式(延迟初始化&…...
UE4 材质学习笔记06(布料着色器/体积冰着色器)
一.布料着色器 要编写一个着色器首先是看一些参考图片,我们需要找出一些布料特有的特征,下面是一个棉织物,可以看到布料边缘的纤维可以捕捉光线使得边缘看起来更亮 下面是缎子和丝绸的图片,与棉织物有几乎相反的效果,…...
人工智能学习框架
人工智能学习框架是指用于开发和训练机器学习和深度学习模型的软件库和工具集。这些框架帮助开发者更高效地构建、训练和部署模型,加速人工智能应用的开发进程。 常见的人工智能学习框架 TensorFlow 由Google开发,是一个开源的深度学习框架,…...
GEE 教程:Landsat TOA数据计算地表温度(LST)
目录 简介 函数 expression(expression, map) Arguments: Returns: Image reduceRegion(reducer, geometry, scale, crs, crsTransform, bestEffort, maxPixels, tileScale) Arguments: Returns: Dictionary 代码 结果 简介 地表温度(Land Surface Temperature,LS…...
Web编程---配置Tomcat
文章目录 一、目的二、原理三、过程1. 解压“apache-tomcat-10.0.27-windows-x64.zip”文件到指定文件夹。2. 配置环境变量3.修改编码方式,防止 Tomcat 控制台出现乱码。4.启动 Tmocat5.打开浏览器,地址栏输入 http://localhost:8080 ,如果看…...
物联网5G模块WIFI模块调式记录(Pico)
调试环境 MCU:Pico1(无wifi版)5G模块:EC800K(iot专用4g卡)WIFI模块:ESP01s(Esp8266芯片)、DX-WF24开发环境:MacBook Pro Sonoma 14.5开发工具:Th…...
中国平安蝉联2024“金融业先锋30”第一名 获金融业ESG最高五星评级
2024年10月15日,中央广播电视总台正式对外发布《金融业ESG行动报告(2024)》(以下简称"《报告》"),并公布了"中国ESG上市公司金融业先锋30"榜单。中国平安凭借在绿色金融、普惠金融、养…...
[图解]题目解析:财务人员最有可能成为业务执行者的是
1 00:00:00,420 --> 00:00:04,760 接下来,是第3章自测题第1部分的第8题 2 00:00:05,090 --> 00:00:08,120 单选,针对以下研究对象 3 00:00:08,900 --> 00:00:11,530 财务人员最有可能成为业务执行者的是 4 00:00:12,800 --> 00:00:15,280…...
零基础学大模型——大模型技术学习过程梳理
“学习是一个从围观到宏观,从宏观到微观的一个过程” 学习大模型技术也有几个月的时间了,之前的学习一直是东一榔头,西一棒槌,这学一点那学一点,虽然弄的乱七八糟,但对大模型技术也算有了一个初步的认识。…...
匹配全国地址的正则表达式工具类
正则表达式,匹配全国五级地址工具类,可以直接放在项目中使用~ 1级:国 (可忽略不填) 2级:**省、**自治区、**直辖市、**特别行政区、(四个直辖市可忽略不填) 3级:**市、**…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...
