【 使用环境 】测试环境
【 OB or 其他组件 】
oceanbase-all-in-one-4.1.0.0-100120230423105040.el7.x86_64.tar.gz
系统centos7.9单机部署
ob社区版4.1.0.0
【 使用版本 】
【问题描述】obd白屏安装错误:OBProxy与OCPExpress失败,相关的环境配置我已经和官方的文档确认很多次了,应该是没有错误的,重新部署了很多次都是这样
【复现路径】
部署失败截图
OCPExpress日志目录下无文件
OBProxy日志目录下只有三个文件有内容
obproxy_xflush.log (2.4 KB)
obproxy.log (58 KB)
obproxy.log.wf.txt (557 字节)
【问题现象及影响】
【附件】
谐云
2023 年5 月 9 日 14:53
#3
首先重复部署之前需要先清理环境 obd cluster destory ${deployname} -f
如果还是不行 需要再提供一些信息:
1、obd的配置文件 路径在 ~/.obd/cluster/${deployname}/config.yaml
2、obd的log 在 ~/.obd/log/obd
每次重新部署前我都直接重置了虚拟机,所有环境都是重新配置的, 应该不存在环境清理不干净的情况,下面是这两个文件
config.yaml.txt (1.6 KB)
obd.txt (370.2 KB)
这台机器配置是8核64G,因为只有一块500G的磁盘,/data和/redo都在同一块磁盘上和系统盘共用
谐云
2023 年5 月 9 日 15:46
#7
思路:先确定obproxy是否可用,因为ocpexpress依赖了obproxy。
日志里面没看到obproxy的报错,猜测proxy是安装好了。你先验证一下:
obclient -h{ip} -P2883 -uroot@proxysys -p{如果设置了obproxy_sys_password放这里 默认空} -Doceanbase -A
如果可以联通证明 obproxy是安装好的。然后通过obproxy 链接一下 ob
obclient -h{ip} -P2883 -uroot-p{observer_root_password密码} -Doceanbase -A
如果也是通的 。可以尝试 黑屏 操作 再次start一次 obd cluster start {deployname}
看起来是obproxy启动失败,导致OCP-Express连不上metadb,从而没起来,看obproxy日志有如下报错:
谐云
2023 年5 月 9 日 16:07
#9
你用上面给你的命令链接一下 就可以确定obproxy是否安装成功
谐云
2023 年5 月 9 日 16:10
#10
你先确定一下obproxy是否可以联通,在进行下一步排查。 非ERROR级别的日志 不一定阻塞obproxy的部署
我测试了通过obproxy确实可以连接上ob,obd cluster start还是会报报错,无法通过obproxy连接,但是等待两分钟以后又可以通过obproxy连接了
谐云
2023 年5 月 9 日 16:27
#12
你先确定目前的obproxy是好使的,然后执行下面的这个命令 只start ocp-express 试一下
obd cluster start {deployname} -c ocp-express
解决了,在部署之前,修改脚本中obproxy program health check的重试次数即可
vim ~/.obd/plugins/obproxy-ce/3.1.0/start.py
vim ~/.obd/plugins/obproxy/3.2.1/start.py
stdio.start_loading('obproxy program health check')
failed = []
servers = cluster_config.servers
count = 200 # 243行附近 原本这里为20改为了200
while servers and count:
count -= 1
tmp_servers = []
for server in servers:
2 个赞
cluster_name='actiondb' # 此处填写你的集群名字
cd /root/.obd/cluster/${cluster_name}/ # 确保这个路径和你的路径相符
# 修改obproxy中的 observer_sys_password 参数的值
passwd_proxysys=$(grep -w 'obproxy_sys_password' config.yaml | awk -F'[: ]+' '{print $3}')
passwd_proxyro=$(grep -w 'proxyro_password' config.yaml | awk -F'[: ]+' '{print $3}')
port_obproxy=$(grep -w 'listen_port' config.yaml | awk -F'[: ]+' '{print $3}')
ips_obproxy=$(sed -n '/^obproxy-ce/,/^[a-zA-Z]/p' config.yaml |sed -n '/servers:/,/:/p' |grep '-'|awk '{print $2}')
for ip in ${ips_obproxy}
do
echo ${ip}
mysql -h${ip} -uroot@proxysys -P${port_obproxy} -p${passwd_proxysys} -e \
"alter proxyconfig set observer_sys_password = '${passwd_proxyro}';"
done
# 移除可能的lock
mv /root/.obd/lock{,_bak}
# 启动obproxy
obd cluster start ${cluster_name} -c obproxy-ce
# 启动ocp-express
obd cluster start ${cluster_name} -c ocp-express
# 启动集群(主要用于刷新obd cluster list中的集群状态:deployed-->running )
obd cluster start ${cluster_name}