【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.5.3.2
【问题描述】部署最后阶段,提示部署失败,但是所有服务都提示完成,【这个阶段已经可以使用了,我从mysql同步数据过来了,然后查看视图发现很慢,我就把node1给关机加内存了】然后重启后,此时集群已经崩溃,使用obd cluster stop ob + obd cluster start ob 也无法启动,提示import obshell_bootstrap failed
【复现路径】
【附件及日志】
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手 ] 即可召唤小助手,欢迎试用!
1 个赞
论坛小助手
2025 年5 月 28 日 17:45
#3
根据您提供的信息,问题可能与 obshell 的启动失败有关。以下是针对您问题的详细分析和解决建议:
问题分析
部署提示失败但服务运行
您提到在部署最后阶段提示失败,但所有服务都提示完成。这可能是由于某些非关键步骤失败导致的误报。
节点重启后无法启动
当您重启其中一个节点后,集群崩溃,并且 obd cluster start ob
命令无法启动集群,提示 import obshell_bootstrap failed
。这表明 obshell 的启动过程中存在问题。
错误日志分析
根据日志中的关键信息:
import obshell_bootstrap failed
表明 obshell 的启动脚本加载失败。
日志中还提到 setlocale
出现问题,这可能与系统的区域设置(locale)不正确有关。
解决方案
1. 检查系统区域设置(locale)
2. 检查 obshell 的依赖项
3. 重新部署集群
4. 检查日志以定位具体问题
如果问题仍然存在,请查看详细的 obd 日志以获取更多信息:obd log -f
根据日志中的具体错误信息进一步排查。
其他注意事项
生产模式配置
您提到这是测试环境,请确保 production_mode
配置为 false
,以避免严格的检查限制。参考文档片段 2 和 9。
内核参数检查
确保操作系统的内核参数符合 OceanBase 的推荐配置。如果测试环境中无法修改内核参数,可以通过将 production_mode
设置为 false
来跳过检查。
版本兼容性
您使用的是 OceanBase 4.5.3.2 版本,请确保 obd 的版本与之兼容。参考文档片段 6 和 8。
总结
根据文档库中的信息,问题的主要原因可能是系统 locale 配置不正确或 obshell 的依赖项缺失。通过修复 locale、安装依赖项以及重新部署集群,应该可以解决此问题。如果问题仍未解决,请提供更详细的日志信息以便进一步分析。
更多信息请查看:
OceanBase 安装部署工具 V2.8.0
错误码
OceanBase 安装部署工具 V2.4.0
通过图形化界面部署 OCP
通过图形化界面变更组件
启动 obshell
改好后,出现另外一个错误了:root@debian:/home/long# obd cluster start ob
Get local repositories ok
Load cluster param plugin ok
Open ssh connection ok
Check before start obagent ok
Check before start ocp-express ok
cluster scenario: htap
Start observer ok
observer program health check ok
Connect to observer 192.168.6.231:2881 ok
obshell start ok
obshell program health check ok
start obproxy ok
obproxy program health check ok
Connect to obproxy ok
Start obagent ok
obagent program health check ok
Connect to observer 192.168.6.231:2881 ok
[ERROR] oceanbase-ce-py_script_create_user-4.0.0.0 RuntimeError: ‘bool’ object is not iterable
See https://www.oceanbase.com/product/ob-deployer/error-codes .
Trace ID: 925987a6-3ba9-11f0-90aa-b00200457e39
If you want to view detailed obd logs, please run: obd display-trace 925987a6-3ba9-11f0-90aa-b00200457e39
root@debian:/home/long#
1 个赞
辞霜
2025 年5 月 28 日 18:05
#6
麻烦提供一份~/.obd/cluster/xxxx/yaml文件,obd 版本
内存加的是主机层面的么?
2 个赞
是虚拟机
user:
username: long
password: ********
port: 22
oceanbase-ce:
version: 4.3.5.2
release: 102000112025051418.el7
package_hash: de3213df61335f08d7f7e60097aa8402ce868afd
192.168.6.231:
zone: zone1
datafile_maxsize: 212G
datafile_next: 21G
192.168.6.232:
zone: zone2
datafile_maxsize: 220G
datafile_next: 22G
192.168.6.233:
zone: zone3
datafile_maxsize: 215G
datafile_next: 21G
servers:
192.168.6.231
192.168.6.232
192.168.6.233
global:
appname: ob
root_password: ******
mysql_port: 2881
rpc_port: 2882
home_path: /home/long/ob/oceanbase
scenario: htap
cluster_id: 1748361465
ocp_agent_monitor_password: 09qWsoXJ0Q
proxyro_password: 9HnNdMGNd0
ocp_root_password: ah6sLet0IN
ocp_meta_password: 7R6zXM9FMx
ocp_meta_tenant_log_disk_size: 8G
enable_syslog_wf: false
max_syslog_file_count: 16
production_mode: false
memory_limit: 12G
datafile_size: 29G
system_memory: 1G
log_disk_size: 29G
cpu_count: 16
obproxy-ce:
version: 4.3.4.0
package_hash: fba87ccf12faba9ba599cd7b0ca4a8149d1abb0e
release: 1.el7
servers:
192.168.6.231
192.168.6.232
192.168.6.233
global:
prometheus_listen_port: 2884
listen_port: 2883
rpc_listen_port: 2885
home_path: /home/long/ob/obproxy
obproxy_sys_password: ?Df{(oJuTzW=rj,cnf4[
skip_proxy_sys_private_check: true
enable_strict_kernel_release: false
enable_cluster_checkout: false
192.168.6.231:
proxy_id: 1183
client_session_id_version: 2
192.168.6.232:
proxy_id: 1184
client_session_id_version: 2
192.168.6.233:
proxy_id: 1185
client_session_id_version: 2
depends:
oceanbase-ce
obagent:
version: 4.2.2
package_hash: 19739a07a12eab736aff86ecf357b1ae660b554e
release: 100000042024011120.el7
servers:
192.168.6.231
192.168.6.232
192.168.6.233
global:
monagent_http_port: 8088
mgragent_http_port: 8089
home_path: /home/long/ob/obagent
http_basic_auth_password: p2mGEU9g7
ob_monitor_status: active
depends:
oceanbase-ce
ocp-express:
version: 4.2.2
package_hash: 09ffcf156d1df9318a78af52656f499d2315e3f7
release: 100000022024011120.el7
servers:
192.168.6.231
global:
port: 8180
admin_passwd:******
home_path: /home/long/ob/ocpexpress
memory_size: 872M
depends:
obagent
oceanbase-ce
obproxy-ce
root@debian:/home/long# cat /root/.obd/cluster/ob/inner_config.yaml
oceanbase-ce:
192.168.6.231: {}
192.168.6.232: {}
192.168.6.233: {}
$_component_global_attrs:
$_standby_relation:
$_standbyro_password:
obproxy-ce:
192.168.6.231: {}
192.168.6.232: {}
192.168.6.233: {}
$_deploy_install_mode: ln
obagent:
192.168.6.231: {}
192.168.6.232: {}
192.168.6.233: {}
ocp-express:
192.168.6.233: {}
192.168.6.231: {}
辞霜
2025 年5 月 29 日 09:40
#10
ocp-express当前不建议使用了 这边已经不进行维护了,节后就会下掉了。
建议你铲掉集群重新搭建,可以选择ocp产品部署
您这边建议先部署ob集群还是先部署ocp呢? 先部署ob的话 ocp用4.3.5.2是否有影响?
辞霜
2025 年5 月 29 日 14:23
#12
直接可部署一台单节点ocp后续使用ocp进行ob安装部署比较方便
如果希望ocp也高可用呢?
您提到的使用一台单节点ocp,这个ocp是独立服务器吗?还是和ob共用?
辞霜
2025 年5 月 29 日 14:34
#15
和ob公用,
当然ocp也可以高可用,这边看你只有三节点所以建议部署个单节点ocp
大致就是 先安装obd,然后obd部署全新环境的ocp,这个ocp把默认端口修改掉,然后使用ocp去部署ob集群,这个ob集群用默认端口。
是这个思路吗?
不修改端口的话,ocp和ob共用同一个服务器,不就冲突了吗?因为ocp也有proxy和ob
辞霜
2025 年5 月 29 日 14:59
#19
ocp需要一台ob数据库来作为自己的metadb。所以该节点只能为ocp提供服务。
我理解的是:
ocp ob节点
192.168.6.231:2891 + 192.168.6.231:2892
192.168.6.232:2891 + 192.168.6.232:2892
192.168.6.233:2891 + 192.168.6.233:2892
ocp proxy节点
192.168.6.231:2893 + 192.168.6.231:2894
192.168.6.232:2893 + 192.168.6.232:2894
192.168.6.233:2893 + 192.168.6.233:2894
ocp 服务端口
192.168.6.231:8080
ob节点
192.168.6.231:2881 + 192.168.6.231:2882
192.168.6.232:2881 + 192.168.6.232:2882
192.168.6.233:2881 + 192.168.6.233:2882
obproxy节点
192.168.6.231:2883 + 192.168.6.231:2884
192.168.6.232:2883 + 192.168.6.232:2884
192.168.6.233:2883 + 192.168.6.233:2884
辞霜
2025 年5 月 29 日 15:36
#21
ob不支持且不建议单节点多实例部署
架构建议
231节点 ocp+metadb+(ocp的proxy 该proxy不对外提供服务)
232+233可搭建业务集群+obproxy,或者再多分配一台机器搭建1-1-1高可用集群
您的意思是,ocp和ocp的metadb可以共用一个节点,但是业务的ob需要单独部署在其它节点上
等于是加入我有四个节点,我只需要在192.168.6.231上部署obd,然后用obd部署ocp即可
然后ocp部署好后,我用ocp去部署192.168.6.232-192.168.6.234 三节点的ob集群,是这个意思吗
辞霜
2025 年5 月 29 日 15:43
#23
是的,ocp可以管控多台集群。ocp具有监控告警 备份恢复 数据库启停运维等功能。功能很强大
1 个赞