【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.5.x
【问题描述】单zone扩容问题,看了资料可以用obshell,obd,或者其他命令;问题是:1 新增节点是不是规格要和zone的一模一样 2 我看操作是不是要新机器先安装ob,但是如果用obd装的话,他其实是全家桶安装,安装后自己有zone。肯定没法被老的zone扩容吸收吧。 这里没有讲清楚,这个新节点前置和安装需要怎么弄,才能被老zone接收。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
#3
针对您的问题,这里先简单说明一下OceanBase 4.3.5.x版本中单Zone扩容的基本流程和注意事项:
-
新节点规格:通常建议新加入的节点配置(如CPU、内存、存储空间等)与现有Zone中的节点保持一致或更高,以保证整个系统的稳定性和性能一致性。不过,OceanBase也支持不同规格的节点混合部署,这需要根据您的业务需求和实际情况来决定。
-
前置准备工作:
- 确认网络:确保新增节点与现有Zone内所有节点间网络通畅,包括可以互相ping通、SSH免密登录等。
- 检查软件环境:确保新增节点的操作系统版本、依赖库等与现有节点相同或兼容。
- 安装OceanBase依赖:按照官方文档安装OceanBase数据库所需的依赖项。
-
使用obd安装:
- 安装obd:如果尚未安装obd工具,可以通过
pip install obdepy命令进行安装。
- 准备配置文件:基于现有Zone的配置文件,调整生成适合新节点的配置文件。
- 部署OceanBase:利用obd工具,通过指定配置文件来部署OceanBase实例到新节点上。
- 加入集群:确保新节点上的OceanBase服务启动后,通过obd工具将新节点加入到现有的OceanBase集群中。
-
验证:
- 在新节点成功加入集群后,可以通过OceanBase的管理界面检查集群状态,确保新节点正常在线。
- 执行一些读写操作,验证数据是否能够在新旧节点之间正确分布。
针对您提到的使用obd进行安装后如何确保新节点能够被旧Zone接收的问题,关键在于正确的配置和验证步骤。使用obd工具时,应确保按照官方文档准确配置各个参数,特别是与现有Zone相关联的部分,如集群名称、区域标识等。此外,部署完成后,及时检查集群状态和日志信息,确保没有任何异常。
虽然您提到的情况主要是关于节点扩容的技术细节,但如果您在操作过程中遇到了具体的错误或异常情况,可以考虑使用obdiag工具进行日志采集,以帮助进一步分析问题。例如,如果遇到新节点加入失败的问题,您可以尝试以下日志采集命令:
日志采集场景: 新增节点无法加入集群
日志采集命令: obdiag gather scene run --scene=observer.unit_data_imbalance
这将帮助收集与unit迁移/缩小副本不均衡问题有关的日志信息,这对于诊断新节点加入过程中可能遇到的问题非常有帮助。
为了更准确地定位和解决您的问题,请回答以下几个问题:
- 新节点与现有节点之间的网络连接是否存在问题?
- 您是如何配置新节点的OceanBase实例的?是否遵循了官方提供的指南?
- 在尝试将新节点加入集群时,是否遇到了任何错误消息?如果有,请提供具体的错误信息。
- 是否已经完成了新节点的前置准备工作,如安装必要的依赖项?
- 在使用obd工具部署OceanBase实例时,使用的配置文件内容是什么样的?是否进行了特定的修改以适应新节点的加入?
附上敏捷诊断工具 obdiag 使用帮助链接
1 个赞
那通过obd 如何安装一台新的机器(如果白屏安装,那就等于一个新的集群了。 如果黑屏安装,是怎么安装),并且被老zone接收呢(obd 或者 obshell)。 这块没文档。
1 个赞
那通过obd 如何安装一台新的机器(如果白屏安装,那就等于一个新的集群了。 如果黑屏安装,是怎么安装),并且被老zone接收呢(obd 或者 obshell)。 这块没文档。
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
#8
通过 OBD 或者 ObShell 安装新机器并加入现有集群,具体步骤如下:
通过 OBD 安装新机器
-
准备环境:确保新机器满足硬件和软件的要求,包括操作系统、网络配置等。
-
安装 OBD:在新机器上安装 OBD 工具。
-
配置文件:创建一个配置文件,指定新机器的 IP 地址、端口号、角色等信息。例如,配置文件
new_node.yaml 可能如下所示:ocpExpress:
cluster:
name: my_cluster
version: 3.1.0
zone:
- name: zone1
servers:
- ip: 192.168.1.100
ssh_user: root
ssh_password: password
data_dir: /data1
log_dir: /data1
memory_limit: 16G
system_memory: 8G
log_disk_size: 24G
datafile_size: 24G
-
加入集群:使用 OBD 命令将新机器加入到现有集群中。例如:
obd cluster add new_node.yaml
-
验证:检查新机器是否成功加入集群,可以使用 OBD 命令查看集群状态:
obd cluster status my_cluster
通过 ObShell 安装新机器
-
准备环境:确保新机器满足硬件和软件的要求,包括操作系统、网络配置等。
-
安装 ObShell:在新机器上安装 ObShell 工具。
-
启动 ObShell Agent:在新机器上启动 ObShell Agent。
/home/admin/oceanbase/bin/obshell agent start --ip 192.168.1.100 -P 2886
-
加入集群:在现有集群的 Master Agent 节点上,使用 ObShell 命令将新机器加入到集群中。
/home/admin/oceanbase/bin/obshell cluster join -s "192.168.1.1:2886" -z zone1 -p 2881 -P 2882 -o 'memory_limit=16G,system_memory=8G,log_disk_size=24G,datafile_size=24G'
-
验证:检查新机器是否成功加入集群,可以使用 ObShell 命令查看集群状态:
/home/admin/oceanbase/bin/obshell cluster status
通过以上步骤,您可以使用 OBD 或 ObShell 将新机器加入到现有的 OceanBase 集群中。
具体信息可参考以下文档:
- 使用命令行部署 OceanBase 数据库生产环境
- obd
- 部署 OceanBase 集群
1 个赞
淇铭
#9
1 个赞
你好,这个我肯定看了。 但是这个有个前提,是新的机器已经安装好ob了。 我现在就是想知道如何不用allinone包的obd,安装一个单独的obs。如果用allinone,obd安装,安装完等于是一个独立的集群了
1 个赞
淇铭
#12
会自己部署搭建的 他会读obd的yaml文件信息的
1 个赞
也就是说,只要一台裸机器。 系统参数配置下。 然后就能用 老的那台进行 obd 远程安装了吗?他怎么登陆新的那台,我看都没配ssh参数啥的。
1 个赞