安装OceanBase的机器如果出现故障,应该如何处理

背景        

           OBD(OceanBase Deployer),是OceanBase社区版的专属安装部署工具。它支持命令行或白屏界面部署,将复杂的配置流程标准化,大大降低了集群部署的难度。

有用户在使用过程中提出问题——“当我所在的OBD机器发生永久故障时,该如何应对?”这里我们将分享一些经验来解决这个问题。在深入探讨之前,我们设定一些基本定义,以方便理解:原OBD所在的机器称为A,新安装的OBD所在的机器则称为B。关于在机器B上安装OBD,我们需要区分非all-in-one和all-in-one两种使用场景下的不同操作。

事前处理:

非 all-in-one 环境:

1、在机器B上安装同版本的 obd

sudo yum install ob-deploy-2.7.0-5.el7.x86_64.rpm

2、执行一下 obd cluster list ,默认用户家目录下没有.obd目录/子目录及其文件,执行后会自动生成。

all-in-one 环境:

1、在机器B上安装同版本的 all-in-one,这里以 oceanbase-all-in-one 为例 ocp-all-in-one 也是一样的步骤。

tar -xzf oceanbase-all-in-one-*.tar.gz
cd oceanbase-all-in-one/bin/
./install.sh
source ~/.oceanbase-all-in-one/bin/env.sh

2、执行一下 obd cluster list ,默认用户家目录下没有.obd目录/子目录及其文件,执行后会自动生成。

安装 rsync 和 inotify-tools

在A/B机器上安装 rsync
sudo yum install -y rsync在A机器上安装 inotify-tools
sudo yum install -y inotify-tools

编写 inotify-watcher 脚本

在机器A上创建一个 Bash 脚本(例如 sync.sh),该脚本利用 inotifywait 监听指定目录的变化,并触发 rsync 进行同步。

#!/bin/bash# 指定要监视的源目录
SOURCE_DIR="/home/heshun.lxd/.obd"# 指定目标服务器和目录
DESTINATION_SERVER="${主机B_IP}:/home/heshun.lxd/.obd"while true; 
do# 使用 inotifywait 监控源目录的变化,这里只监听修改和新增文件事件inotifywait -r -m $SOURCE_DIR -e modify,create,delete,move |while read path action file; doecho "Change detected: $action on $file"# 执行rsync同步,仅同步比目标目录中对应文件新的或被修改的文件rsync -avzu --delete --progress --backup --update "$SOURCE_DIR/" "$DESTINATION_SERVER"done
done

脚本说明:

inotifywait -r -m $SOURCE_DIR -e modify,create,delete,move

-r 或 --recursive:表示递归地监视指定目录 $SOURCE_DIR 及其所有子目录。这意味着任何在该目录及其子孙目录下的文件或子目录发生改变时,都会被监控到。

-m 或 --monitor:持续监听模式。它会一直运行并报告发生的事件,而不是执行一次就退出。

$SOURCE_DIR:这是要监视的源目录路径变量。

-e 或 --event:指定需要关注的特定事件类型。

modify:当文件内容被修改时触发事件。

create:当有新文件或目录创建时触发事件。

delete:当文件或目录被删除时触发事件。

move:当文件或目录被移动(重命名)时触发事件。

while read path action file,其中 path,action 和 file 是三个变量,它们分别用来接收由 inotifywait 输出的事件信息中的目录路径、事件动作和文件名。

整个脚本的功能:每当 $SOURCE_DIR 目录及其子目录中的文件发生修改、创建、删除或移动时,inotifywait 都会输出相应的事件信息,并且由于使用了 -m 参数,它会持续监听这些事件的发生,而不仅仅是检测一次。

给脚本授权并执行

chmod +x sync.sh
nohup ./sync.sh &

测试:

在B机器上可以通过obd维护原A机器上使用obd部署的环境。

事后处理

如果在A机器永久故障前,没有在B机器上提前做好备份/同步,当A机器永久故障后,此时可以尝试:

1、如果记得A机器上部署的obd版本,最好下载并安装该版本的obd,如果不记得,可以尝试安装最新版本的obd.

2、执行一次 obd cluster list

3、在 ~/.obd/cluster 目录下创建一个目录,目录名即是原obd部署时指定的 deploy_name 名字。

4、在第3步创建的目录下创建2个文件 config.yaml 和 .data (注意是隐藏文件)。

   4.1 config.yaml 建议在其他机器上部署一个同版本的observer/obproxy/ocp-server 按需选择需要的组件,然后将对应的配置文件拿过来修改为需要在机器B上通过obd来管理原机器A上管理的环境。

   4.2 .data  name名字和第3步创建的目录名保持一致。文件内容中涉及的组件需要和4.1步骤中能对应的上,其中:

  •  hash字段:通过 obd mirror list local 或者 obd mirror list oceanbase.community.stable 对应同组件同版本的md5值。
  •  version字段:通过 obd mirror list local 或者 obd mirror list oceanbase.community.stable 对应同组件同版本的version值。
  •  确认所有组件是正常运行的,status字段设置: STATUS_RUNNING ,
  •  config_status字段设置: UNCHNAGE

.data 文件示例:

name: ob430
components:oceanbase-ce:hash: c4a03c83614f50c99ddb1c37dda858fa5d9b14b7version: 4.3.0.1obproxy-ce:hash: 0490ebc04220def8d25cb9cac9ac61a4efa6d639version: 4.2.3.0
status: STATUS_RUNNING
config_status: UNCHNAGE

5、尝试执行

obd cluster list 
obd cluster display xxx

如果上面的命令可以正常执行,可以尝试 obd cluster edit-config xx修改参数 memory_limit 来进一步确认。

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

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

相关文章

OceanBase 分布式数据库【信创/国产化】- OceanBase V4.3 更新了什么 What‘s New

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase V4.3 更新了什么 Whats New前言OceanBase 数据更新架构Whats NewOLAP 能力列存引擎旁路导入新向量化引擎物化视图OceanBase 分布式数据库【信创/国产化】- OceanBase V4.3 更新了什么 What’s…

Java在区块链开发中的作用及发展

Java在区块链开发中的作用以及发展 一、引言 随着信息技术的飞速发展,区块链技术作为一种新兴的去中心化分布式账本技术,正逐渐引起人们的广泛关注。区块链以其独特的不可篡改、去中心化、安全可信等特性,在数字货币、供应链管理、金融科技…

mac下安装python并编写脚本实现s3上传功能

mac下安装python并编写脚本实现s3上传功能 步骤一:安装 Python 31. 安装 Homebrew(如果尚未安装):2. 使用 Homebrew 安装 Python 3:3. 验证安装:4.安装boto3: 步骤二:编写 S3 上传脚…

【树莓派】yolov5 Lite,目标检测,行人检测入侵报警

延续之前的程序: https://qq742971636.blog.csdn.net/article/details/138172400 文章目录 播放声音pygame不出声音怎么办(调节音量)树莓派上的音乐播放器(可选)命令行直接放歌(尝试放mp3歌曲) …

nginx负载均衡策略

1、轮询(Round Robin)-默认 依次转发,适用于多台服务器性能相近 2、加权轮询(Weighted Round Robin) weight高的优先分配,适用于多台服务器性能相差较大 3、IP hash 基于客户端 IP 地址的负载均衡策略&a…

Windows 本地直接使用 SSH,SFTP 以及 SFTP下载文件到 Windows/mac 本地或上传(没有客户端时)

windows 本地打开 ssh 以及 sftp 等的方式 1.win(windows图标那个键) r 直接搜 然后从打开的位置运行 如果是打开 sftp 前面的 ssh 换一下成sftp 就行 直接从地址栏输入也可以直接转过去 通过 windows 的工具直接访问 sftp 后将文件下载到自己的windows 或 mac 上 先通过…

【C++】---STL之list的模拟实现

【C】---STL之list的模拟实现 一、list模拟实现思路二、结点类的实现三、list迭代器的实现1、ListIterator类2、构造函数3、operator*运算符重载5、operator->运算符重载6、operator!运算符重载7、operator运算符重载8、前置9、后置10、前置--11、后置-- 四、lis…

JAVAEE—HTTPS和ssl证书

0[toc] 什么是HTTPS HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况而HTTPS则是新采用加密的方式进行传输 为什么需要HTTPS 为什么要使用HTTPS呢?这…

win c++使用lua环境配置 5.3.5版本

编译lua 下载lua源码,github仓库 使用vs编译源码,新建一个静态库项目(只会生成lib文件),想要dll的话就新建dll项目(有一个lib文件和dll文件) 把lua源码下面的文件夹都是,复制到vs项目中 lib目录是我手动…

配置etcd、apiserver使用的cpu和内存资源

etcd pod 默认使用的cpu和内存都是100M,当集群变大时,资源会不够用,导致异常,如: apiserver 默认使用cpu为250M k8s-master121 kubelet[31020]: E0425 14:41:54.026671 31020 controller.go:187] failed to update lease, error: etcdserver: request timed out kubelet[3…

四、搭建 FFmpeg,实战直播推流

目录 1、FFmpeg 简介 2、FFmpeg 项目组成 3、使用 ffmpeg 的方式分为两种: 5、FFmpeg 命令行 <

MongoDB聚合运算符:$sinh

MongoDB聚合运算符&#xff1a;$sinh 文章目录 MongoDB聚合运算符&#xff1a;$sinh语法使用举例双曲正弦值角度双曲正弦值弧度 $sinh聚合运算符用来计算双曲正弦值&#xff0c;返回以弧度为单位的指定表达式的双曲正弦值。 语法 { $sinh: <expression> }<expression…

【QEMU系统分析之启动篇(十七)】

系列文章目录 第十七章 QEMU系统仿真的显示初始化分析 文章目录 系列文章目录第十七章 QEMU系统仿真的显示初始化分析 前言一、QEMU是什么&#xff1f;二、QEMU系统仿真的启动分析1.系统仿真的初始化代码2.主循环数据初始化3. qemu_init_displays()init_displaystate()qemu_di…

4.25java项目小结

完成了头像的显示&#xff0c;能将头像设置圆形&#xff0c;从数据库传输头像&#xff0c;客户端接收并在界面上展示&#xff0c;并能从文件选择图片 、

Golang | Leetcode Golang题解之第49题字母异位词分组

题目&#xff1a; 题解&#xff1a; func groupAnagrams(strs []string) [][]string {mp : map[[26]int][]string{}for _, str : range strs {cnt : [26]int{}for _, b : range str {cnt[b-a]}mp[cnt] append(mp[cnt], str)}ans : make([][]string, 0, len(mp))for _, v : ra…

20240425金融读报:银行绿色数据收集ESG银行物联网智慧贵金属案例

1、银行与绿色产业之间风险-存在环保信息壁垒&#xff1a;收集政府何市场披露数据&#xff0c;生成ESG报告&#xff0c;作为评级、贷款依据或强控指标 2、 中国建设银行智慧贵金属-》同理可推智慧押品&#xff1a;1、梳理需求&#xff08;看现有贵金属操作流程&#xff0c;并分…

金融级国产化替代中间件有哪些?

过去&#xff0c;国内中间件市场一直由IBM、Oracle等国际大型企业所主导&#xff0c;这在一定程度上限制了对国内企业多样化和个性化需求的满足&#xff0c;尤其是在实现底层硬件与上层应用软件之间高效、精准匹配方面。面对日益复杂的国际局势&#xff0c;金融安全已成为国家整…

docker 安装 Sql Server

docker 安装 Sql Server 官网地址&#xff1a;https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?viewsql-server-ver16&tabscli&pivotscs1-bash 安装命令 sudo: 这是一个在 Linux 系统上以超级用户权限运行命令的关键字。它用于确保…

负载均衡集群——LVS

目录 1.LVS简介 2.LVS体系结构 3.LVS相关术语 4. LVS工作模式 5. LVS调度算法 6.LVS集群介绍 6.1 LVS-DR模式 6.2 LVS – NAT 模式 6.3 LVS – TUN 模式 7.LVS 集群构建 7.1 LVS/NAT 模式配置 实验操作步骤 步骤 1 Nginx1 和 Nginx2 配置 步骤 2 安装和配置 LVS …

windows下的文件路径怎么在pycharm中使用(python)

在Windows操作系统中&#xff0c;文件路径的格式与Unix/Linux系统略有不同&#xff0c;主要在于路径分隔符的使用。Windows系统通常使用反斜杠&#xff08;\&#xff09;作为路径分隔符&#xff0c;而Unix/Linux系统使用正斜杠&#xff08;/&#xff09;。当在Python中处理文件…