黑屏环境下,如何利用OBD部署OceanBase企业版集群

一、前言

OBD,作为OceanBase官方推出的部署工具,显著简化了OB单机及集群的部署流程。此前,OBD能够支持对社区版OB进行一键部署,那OBD是否同样支持OB企业版的部署呢?

本文为大家介绍通过OBD,在OB企业版集群部署过程中遇到的一些问题和解决方案,希望能为大家提供一些参考。

二、部署准备

开发机资源cpu与内存存储大小
阿里云AY12C8G40G
阿里云AY22C8G40G
阿里云AY32C8G40G
资源包版本
OceanBase企业版4.2.2.0
OB-Deploy2.4.1(2.5以上不支持商业版,2.4.1可兼容431版本的OB,预计3.0开始支持商业版)
OBProxy4.2.3.0
OBClient2.2.6

注意⚠️:本篇文档部署的是企业版OceanBase,并非社区版

前置条件:为了方便OBD远程部署,需要将集群内开发机的SSH登录用户名和密码改为一样的,如:

username:root
password:xxxxx

一台机器上先准备如下四个文件(如下载到AY1上),点击前往 mirror 网站搜索下载

三、部署流程

📖 以下部署流程只需要在一台机器上完成即可,如我所用的机器是 AY1,其 IP 为 192.168.0.167

解压 ob-deploy 文件

rpm -ivh ob-depoly.xxxxxx.rpm

然后将所有的 rpm 加入 OBD 的镜像当中

rpm mirror remote disable
rpm mirror clone *.rpm
rpm mirror list local

查看是否添加成功

1718846954

进入 /usr/obd/example 目录下,编辑 mini-distribute-withe-obproxy-example.yaml 文件

## Only need to configure when remote login is required
user:username: 你设置的用户名,一般是rootpassword: 你设置的密码
#   key_file: your ssh-key file path if needport: 22timeout: 30
oceanbase:servers:- name: server1# Please don't use hostname, only IP can be supportedip: 192.168.18.207- name: server2ip: 192.168.18.205- name: server3ip: 192.168.18.206global:# Starting from observer version 4.2, the network selection for the observer is based on the 'local_ip' parameter, and the 'devname' parameter is no longer mandatory.# If the 'local_ip' parameter is set, the observer will first use this parameter for the configuration, regardless of the 'devname' parameter.# If only the 'devname' parameter is set, the observer will use the 'devname' parameter for the configuration.# If neither the 'devname' nor the 'local_ip' parameters are set, the 'local_ip' parameter will be automatically assigned the IP address configured above.# devname: eth0cluster_id: 1 # please set memory limit to a suitable value which is matching resource.memory_limit: 6G # The maximum running memory for an observersystem_memory: 1G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.datafile_size: 2G # Size of the data file.datafile_next: 2G # the auto extend step. Please enter an capacity, such as 2Gdatafile_maxsize: 20G # the auto extend max size. Please enter an capacity, such as 20Glog_disk_size: 13G # The size of disk space used by the clog files.cpu_count: 16production_mode: falseenable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false.max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.# observer cluster name, consistent with obproxy's cluster_nameappname: obcluster# root_password: # root user password, can be empty# proxyro_password: # proxyro user pasword, consistent with obproxy's observer_sys_password, can be emptyserver1:mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.#  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.home_path: /root/observer# The directory for data storage. The default value is $home_path/store.# data_dir: /data# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.# redo_dir: /redozone: zone1server2:mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.#  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.home_path: /root/observer# The directory for data storage. The default value is $home_path/store.# data_dir: /data# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.# redo_dir: /redozone: zone2server3:mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.#  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.home_path: /root/observer# The directory for data storage. The default value is $home_path/store.# data_dir: /data# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.# redo_dir: /redozone: zone3
obproxy:# Set dependent components for the component.# When the associated configurations are not done, OBD will automatically get the these configurations from the dependent components.depends:- oceanbaseservers:- 192.168.18.207global:listen_port: 2883 # External port. The default value is 2883.prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884.home_path: /root/obproxy# oceanbase root server list# format: ip:mysql_port;ip:mysql_port. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.# rs_list: 192.168.1.2:2881;192.168.1.3:2881;192.168.1.4:2881enable_cluster_checkout: false# observer cluster name, consistent with oceanbase-ce's appname. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.# cluster_name: obclusterskip_proxy_sys_private_check: trueenable_strict_kernel_release: falseproxy_id: 100client_session_id_version: 2# obproxy_sys_password: # obproxy sys user password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.# observer_sys_password: # proxyro user pasword, consistent with oceanbase-ce's proxyro_password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.

编辑好文件后我们就可以部署 obcluster 这个集群了

obd cluster deploy obcluster -c mini-distributed-with-obproxy-example.yaml

部署成功截图

1718846933

此时启动 obcluster 可能会报错

1718846983

what❓

针对此问题有两种解决方法

方法一

  • 如果对安全检查不是很在意,且仅仅是简单测试的话可以试试该方法,如下直接删除安全检查脚本即可(结果可能不稳定,且也需要每台机器运行一遍,故不推荐该方法)
rm -rf ~/.obd/plugins/oceanbase/*/start_check.py

方法二

  • 比较推荐的方法,只需要每台机器执行一遍如下命令
echo -e "* soft nproc 120000\n* hard nproc 120000" >> /etc/security/limits.d/20-nproc.conf
source /etc/profile

本篇文档使用方法二进行部署,随后重新执行启动集群命令

obd cluster start obcluster

1718847005

按照提示登录 OB 即可检验是否拉起分布式环境

1718847025

最终集群结果分析:

开发机内网IP节点角色
AY1192.168.0.167Observer + OBproxy
AY2192.168.0.168Observer
AY3192.168.0.169Observer


💡OBD 全程部署需要等待的时间大约为3分钟。若您想获取源码及更多详情,请访问我们的 GitHub 仓库:GitHub - oceanbase/obdeploy: A deployer and package manager for OceanBase open-source software.。

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

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

相关文章

(最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)

(最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题) 岗位——硬件技术工程师 岗位意向——单板硬件开发 真题题目分享,完整版带答案(有答案和解析&#xff0…

「青鸟」作家导演起飞计划,助人才转型,共铸电影市场新活力

2024年6月,《上海市电影高质量发展三年行动计划》发布「青鸟」作家导演起飞计划应运而生(下文简称「青鸟计划」)。作为全国首个协助作家跨界转型、用画面讲好故事的扶持平台,青鸟计划重视电影的文学性,通过专业人士搭建…

关于lua调用DLL的c/c++动态库(相关搜索:数据库)

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

访问者模式详解

访问者模式 简介: 类的内部结构不变的情况下,不同的访问者访问这个对象都会呈现出不同的处理方式。 人话: 其实就是为了解决类结构不变但操作处理逻辑易变的问题,把对数据的操作都封装到访问者类中, 我们只需要调用不同的访问者,…

python脚本开头怎么写

在python开发的过程中,脚本开头非常重要。 第一行:告诉操作系统python装在哪里(是通过env中查询,然后再调到对应的解析器完成运行)。 第二行:是声明文件的编码格式以utf-8。 其他则为这个文件信息&#…

RTX5源码全家桶集成emWin6.40, Modbus主从,含FreeRTOS版, 探讨一种移植第3方组件通用方法以及使用注意事项2024-08-30

视频: https://www.bilibili.com/video/BV1tFHuenESf RTX5源码全家桶集成emWin6.40, Modbus主从,含FreeRTOS版, 探讨一种移植第3方组件的通用方法以及多任务使用注意事项 提纲: 参考资料: 1、例程下载 RTX5 All In One(2024-08-30 V2.0).7…

上海大面积断网?原因已查明

8月26日晚,上海电信向记者透露,2024年8月26日17:30许,上海电信城域网设备故障,导致上海电信部分宽带业务发生异常,影响全市范围部分云宽带用户业务,上海电信其他业务均不受影响。 经过上海电信全力抢修&…

医院建筑的电气设计——保障医疗质量与安全的坚固基石

医疗资源与水平的提升成为了衡量民生福祉的重要标尺。随着一批批新建医院及既有医院的华丽蜕变,从社区医院到综合医院,再到医疗城、医疗集聚区的崛起,不仅彰显了政府对民生健康的深切关怀,也预示着我国医疗体系正迈向智能化、高效…

PMP–知识卡片--迭代型生命周期

迭代指的是多次循环。例如,软件开发按照版本发布,每一个版本内部都是一个小的瀑布开发,都会经历“需求分析—设计—开发—测试—发布”周期,下一个迭代在此基础上重复这些步骤,对软件进行优化升级,发布新的…

Stable Diffusion majicMIX_realistic模型的介绍及使用

一、简介 majicMIX_realistic模型是一种能够渲染出具有神秘或幻想色彩的真实场景的AI模型。这个模型的特点是在现实场景的基础上,通过加入一些魔法与奇幻元素来营造出极具画面效果和吸引力的图像。传统意义的现实场景虽然真实,但通常情况下缺乏奇幻性&a…

信息技术(科技)老师资料大本营2024-8-31

(https://img-blog.csdnimg.cn/87e46b33da9640838ab2a76e3c7c9541.jpg)(https://img-blog.csdnimg.cn/e3099a265ef44365a50ec67acef35787.jpg)

5W爆了,建议紧盯这个方向!!

随着Python编程语言在各行业中的应用不断增加,Python程序员的需求也随之增长。 而爬虫技术可以说是Python应用最广泛也最实用的一个领域。在《2024python岗位调查报告》中,爬虫开发就有超过40%的占比。 近两年业界对爬虫技术服务的需求量一直在涨&#…

3个高效免费的文件恢复助手,数据恢复不再是难题

PC Inspector File Recovery PC Inspector File Recovery是一款功能强大的数据恢复软件,适用于Windows操作系统。该软件能够恢复磁盘、软盘、可移动磁盘等存储设备上的数据,支持多种文件系统,包括FAT12、FAT16、FAT32和NTFS。它不仅可以恢复因…

Excel基础应用

前置准备 前置插件:方方格子 chat8:chat8 Microsoft 365 帮助和学习:Microsoft 365 帮助和学习 基础 快捷键: ctrl1:设置单元格格式 ctrlH:替换 ctrle 智能填充 ctrlg 定位 字体变斜 颜色渐变 条件…

利用clip模型实现text2draw

参考论文 实践 有数据增强的代码 import math import collections import CLIP_.clip as clip import torch import torch.nn as nn from torchvision import models, transforms import numpy as np import webp from PIL import Image import skimage import torchvision …

2024年起重信号司索工(建筑特殊工种)证模拟考试题库及起重信号司索工(建筑特殊工种)理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年起重信号司索工(建筑特殊工种)证模拟考试题库及起重信号司索工(建筑特殊工种)理论考试试题是由安全生产模拟考试一点通提供,起重信号司索工(建筑特殊工种)证模拟考试题库是根据起重信号司索工(建筑特…

能大致讲一下Chat GPT的原理吗?

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 话题群精选了三位网友的回答,从不同的角度阐释了Chat GPT的原理。 第一位网友的回答: 不给你扯长篇大论&#…

江协科技stm32————10-4 I2C通信协议

目录 I2C外设简介 I2C功能框图 基本结构图(一主多从) GPIO复用输入输出图 主机发送​编辑 START stop ​ EV5 (标志位) BTF 主机接收 ACK 软件/硬件波形对比 I2C外设简介 可变多主机模型11110作为10位地址模式的标志位…

disk manager操作教程 如何使用Disk Manager组件 Mac如何打开ntfs格式文件

macOS系统有一个特别明显的弱点,即不能对NTFS格式磁盘写入数据。想要适合Mac系统使用来回转换磁盘格式又十分麻烦,这该怎么办呢?Tuxera ntfs for mac作为一款Mac完全读写软件,大家在安装该软件后,能充分使用它的磁盘管…

MyBatis中的#{}和${}区别、ResultMap使用、MyBatis常用注解方式、MyBatis动态SQL

#{}和${}区别: #{}:是占位符,采用预编译的方式sql中传值,防止sql注入,如果我们往sql中列值传递一般使用 #{}。 ${}:采用字符串拼接的方式直接拼接到sql语句中,一般不用于sql列值传递&#xf…