安装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; 
  do
    echo "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: c4a03c83614f50c99ddb1c37dda858fa5d9b14b7
    version: 4.3.0.1
  obproxy-ce:
    hash: 0490ebc04220def8d25cb9cac9ac61a4efa6d639
    version: 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.mfbz.cn/a/573217.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot集成Sharding-JDBC实现主从同步

SpringBoot集成Sharding-JDBC实现主从同步 1.mysql主从配置2.application.properties文件配置3.测试3.1 查询数据3.2 添加数据 1.mysql主从配置 详细内容请参考上一篇文章:MySQL8.0以上实现主从同步配置 2.application.properties文件配置 # ShardingSphere conf…

通过本机端口映射VMware中虚拟机应用(例如同一局域网别人想远程连接你虚拟机中的数据库)

需要 虚拟机中安装一下达梦数据库,并且以后大家都连接你虚拟机中达梦数据库进行开发。。。。。。在不改动自己虚拟机配置,以及本地网卡任何配置的情况下如何解决?本虚拟机网络一直使用的NAT模式。 解决 找到NAT设置添加端口转发即可解决。…

Git for Windows 下载与安装

当前环境:Windows 8.1 x64 1 打开网站 https://git-scm.com/ ,点击 Downloads 。 2 点击 Windows 。 3 选择合适的版本,这里选择了 32-bit Git for Windows Portable。 4 解压下载后的 PortableGit-2.44.0-32-bit.7z.exe ,并将 P…

运营商三要素核验接口-手机实名验证API

运营商三要素核验接口是一种API(Application Programming Interface,应用程序编程接口),主要用于通过互联网技术对接通信运营商的实名制数据库,以验证用户提供的手机号码、身份证号码、姓名这三项关键信息(…

乐鑫的ESP32-S3芯片的LE能实现beacon功能吗?

最近帮一个客户做ESP32定位器方案,客户提出这个疑问,乐鑫的ESP32-S3芯片的LE能实现beacon功能吗?针对这个问题,启明云端工程师小启给出这样的回复。 回答是可以的,大家可以看idf的例程。 ESP-IDF iBeacon demo From …

19 使用MapReduce编程统计超市1月商品被购买的次数

首先将1月份的订单数据上传到HDFS上&#xff0c;订单数据格式 ID Goods两个数据字段构成 将订单数据保存在order.txt中&#xff0c;&#xff08;上传前记得启动集群&#xff09;。 打开Idea创建项目 修改pom.xml&#xff0c;添加依赖 <dependencies><dependency>…

惠海 H5112B 洗墙灯24V36V48V60V72V100V1.2ALED降压恒流芯片IC PWM无频闪调光

洗墙灯24V36V48V60V72V100V1.2A LED降压恒流芯片PWM无频闪调光是一种特殊的电子元件&#xff0c;专为洗墙灯等LED照明设备设计。以下是关于这种芯片的主要特点和功能&#xff1a; 降压恒流功能&#xff1a;该芯片能够将较高的输入电压&#xff08;如24V、36V、48V等&#xff0…

【机器学习】集成学习---投票法(Voting)

一、引言 集成学习&#xff08;Ensemble Learning&#xff09;是机器学习领域中的一种重要策略&#xff0c;它通过结合多个模型的预测结果来提高整体性能。在单个模型容易过拟合或欠拟合的情况下&#xff0c;集成学习能够通过综合多个模型的优点来减少这种风险&#xff0c;从而…

三 SpringMVC返回数据以及RESTFul设计标准

SpringMVC返回数据 一 控制页面跳转 1.1 快速使用 开发模式回顾在 Web 开发中&#xff0c;有两种主要的开发模式&#xff1a;前后端分离和混合开发。前后端分离模式&#xff1a;[重点]指将前端的界面和后端的业务逻辑通过接口分离开发的一种方式。开发人员使用不同的技术栈和…

Oracle 21 C 安装详细操作手册,并配置客户端连接

Oracle 21 C 安装详细操作手册 Win 11 Oracle 21C 下载&#xff1a; Database Software Downloads | Oracle 中国 云盘共享 链接&#xff1a;https://pan.baidu.com/s/12XCilnFYyLFnSVoU_ShaSA 提取码&#xff1a;nfwc Oracle 21C 配置与登陆&#xff1a; 开始菜单 NetMa…

第三节课,后端登录【1】

一、总任务 二、登录接口 get 请求&#xff0c;有缺陷&#xff0c;长度有限制 三、登录逻辑 四、代码书写位置 4.1 编写业务逻辑的位置 五、写代码 5.1 代码1 5.1.1 细节 按 CtrlAltShiftL ,快速格式化 5.1. 2 自动生成接口参数 先/** 再回车 效果图 5.2 按 alt enter …

SpringBoot (批量)生成二维码工具类多种方法示例

一、引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.4.1</version> </dependency><dependency><groupId>com.google.zxing</groupId><artifactId…

Python之PCV库安装教程以及解说

PCV库是一个比较古老的python库 在网上参考了很多教程 于是现在想要总结一下,并且分享整理了一下资源 很多人是通过pycharm内部直接下载PCV 但是导入时还要报错 因为PCV版本不对 pycharm自动下载的版本过于旧 是0.0.2 而我们需要的是1.0.0版本 否则下面PCV部分会报错无法导入…

Android—统一依赖版本管理

依赖版本管理有多种方式 config.gradle 用于Groovy DSL&#xff0c;新建一个 config.gradle 文件&#xff0c;然后将项目中所有依赖写在里面&#xff0c;更新只需修改 config.gradle文件内容&#xff0c;作用于所有module buildSrc 可用于Kotlin DSL或Groovy DSL&#xff0c;…

阿里服务器centos7宝塔部署docker-compose项目

这里写目录标题 整体项目所使用的服务如下阿里云服务器操作安装宝塔面板小程序docker部署如果报错容器数量显示0 最近搞了个AI角色游戏的小程序&#xff0c;玩一玩练练手&#xff0c;因为项目需要复制部署&#xff0c;就研究下了docker&#xff0c;然后客户很多都是宝塔&#x…

【CMU15-445 Part-19】Multi-Version Concurrency Control

Part19-Multi-Version Concurrency Control 其实说到底 MVCC不仅是一种并发控制协议&#xff0c;更是一个系统构建&#xff08;数据组织的方法&#xff09;。 简介 writer 不会 block readers&#xff0c;reader 也不会 block writers。只读事务可以读到一个consistent的sna…

Clion连接MySQL数据库:实现C/C++语言与MySQL交互

确保你的电脑里已经有了MySQL。 1、找到MySQL的目录 2、进入lib目录 3、复制libmysql.dll和libmysql.lib文件 4、将这俩文件粘贴到你的clion项目的cmake-build-debug目录下 如果不是在这个目录下&#xff0c;运行时会出以下错误报错&#xff1a; 进程已结束&#xff0c;退…

【go零基础】go-zero从零基础学习到实战教程 - 2项目初始化

到项目初始化过程了&#xff0c;这边的项目设计完全按照作者自己的喜好来进行定义和设置的&#xff0c;所以各位完全可以按照自己的偏好自喜设置哈。 首先是创建一个工作文件夹哈。 别问为啥不直接quickstart&#xff0c;因为quickstart生成的api名字是greet&#xff0c;改起来…

抗D盾是什么,为什么游戏被攻击了需要抗D盾

游戏行业DDoS攻击的主要原因是因为游戏产品生命周期偏短&#xff0c;而DDoS供给成本又不高&#xff0c;只要发起攻击&#xff0c;企业为确保游戏稳定运营而不得不快速做出让步&#xff0c;致使敲诈勒索的成功率相对更高。在遭受DDoS攻击后&#xff0c;游戏公司的日损失甚至多达…

c4d渲染动画可以暂停吗?c4d云渲染动画怎么暂停

C4D是一款广泛应用于3D建模和动画制作的软件。在进行动画渲染时&#xff0c;用户有时会希望能够暂停渲染过程&#xff0c;以便进行其他操作或调整渲染设置。根据搜索结果&#xff0c;C4D在渲染动画时确实支持暂停功能。 一、c4d渲染动画怎么暂停 1、暂停渲染 C4D允许用户在渲…
最新文章