Jette
2022 年12 月 12 日 18:52
#1
【 使用环境 】测试环境
【 OB or 其他组件 】OCP、OBproxy
【 使用版本 】4.0版本
【问题描述】
问题1:OCP无法启动成功,容器反复exit重新启动,进入ocp容器内部查看erro日志,提示的是一堆字符串。
问题2:手动通过obproxy测试连通性,发现无法通过OBproxy连接普通租户。
我把预占用机制调低了,和OCP检测超时时间调长了:
cat > /home/admin/ocp-4.0.0-ce-x86_64/Dockerfile-ocp-all-in-one <<‘EOF’
FROM reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:v4.0.0-ce
RUN sed -i ‘s@1024 * 7 / 10@1024 * 2 / 10@g’ /home/admin/ocp-server/bin/ocp-server && cat /home/admin/ocp-server/bin/ocp-server
EOF
docker build -f ./Dockerfile-ocp-all-in-one -t reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:v4.0.0-ce .
cat > /home/admin/ocp-4.0.0-ce-x86_64/Dockerfile << ‘EOF’
FROM reg.docker.alibaba-inc.com/ocp2/ocp-installer:4.0.0-ce-x86_64
RUN sed -i ‘s@check_wait_time = 180@check_wait_time = 3600@g’ /root/installer/task/ocp_check.py && cat /root/installer/task/ocp_check.py
EOF
docker build -f ./Dockerfile -t reg.docker.alibaba-inc.com/ocp2/ocp-installer:4.0.0-ce-x86_64 .
【附件】
OCP相关报错信息:
OBproxy无法连接普通租户:
为什么要调整这两个参数呢,是遇到了什么问题吗,第一个是在容器内占用多少比例的内存,调太小的话没有意义
除了ocp-server.0.err之外,可以看一下ocp.log呢,有没有更明确一点的报错信息
Jette
2022 年12 月 14 日 11:35
#4
参数是根据这个帖子的把预占用调小的,AnolisOS-8.6RHCK部署ocp报错:ocp still not ok, check failed - #3,来自 ieayoio
然后OCP检测时间调长了,是因为启动很慢,3分钟时间不太够。
后面不修改这两个参数,也是会出现上述的问题
ocp.log (3.2 MB)
Jette
2022 年12 月 14 日 11:37
#5
ocp.log日志提示查询数据库超时了呢,跟无法通过obproxy连接普通租户有关吗。
Error querying database. Cause: java.sql.SQLTransientConnectionException: (conn=3079770) Timeout, query has reached the maximum query timeout: 10000000(us), maybe you can adjust the session variable ob_query_timeout or query_timeout hint, and try again.
The error may exist in URL [jar:file:/home/admin/ocp-server/lib/ocp-server-4.0.0-20220930.jar!/BOOT-INF/lib/ocp-core-4.0.0-20220930.jar!/sqlmap/meta/generated/OcpAlarmRecordDao.xml]
The error may involve com.alipay.ocp.core.metadb.generated.mybatis.dao.OcpAlarmRecordDao.selectByExample-Inline
The error occurred while setting parameters
192.168.28.54:2883 这个obproxy是如何部署的呢,是部署ocp的时候配置了创建meta集群自动部署的吗,还是选择的使用已有集群的方式
现在看报错信息是和这个obproxy连不上有关系,可以手动测试一下能否通过这个obproxy连接集群呢
Jette
2022 年12 月 14 日 11:46
#7
obproxy是通过OBD部署的,OCP是使用Docker部署的,然后通过白屏接管了OceanBase集群和OBproxy集群。
现在的情况是使用root@sys系统租户可以连接集群,但是使用root@meta_tenant#obcluster普通租户,就提示以下报错:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
用 root@sys 是没有带 #obcluster连接的吗 ,用meta_tenant也不带#obcluster能连上吗
Jette
2022 年12 月 14 日 11:52
#9
192.168.28.54
192.168.28.55
192.168.28.56
上面这三台是obproxy
不带#obcluster也是连接不了,提示的报错:
ERROR 2027 (HY000): received malformed packet
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
Jette
2022 年12 月 14 日 11:57
#10
这是OBD的配置文件:
user:
username: admin
password: 123456
key_file: /home/admin/.ssh/id_rsa
oceanbase-ce:
servers:
- name: server1
ip: 192.168.28.57
- name: server2
ip: 192.168.28.58
- name: server3
ip: 192.168.28.59
global:
devname: eth0
memory_limit: 16G
system_memory: 4G
syslog_level: INFO
enable_syslog_wf: false
enable_syslog_recycle: true
max_syslog_file_count: 4
appname: obcluster
root_password: xxxxxxxx
proxyro_password: 123456
server1:
mysql_port: 2881
rpc_port: 2882
home_path: /home/admin/oceanbase/ob
data_dir: /data/ob
redo_dir: /redo/ob
zone: zone1
server2:
mysql_port: 2881
rpc_port: 2882
home_path: /home/admin/oceanbase/ob
data_dir: /data/ob
redo_dir: /redo/ob
zone: zone2
server3:
mysql_port: 2881
rpc_port: 2882
home_path: /home/admin/oceanbase/ob
data_dir: /data/ob
redo_dir: /redo/ob
zone: zone3
obproxy-ce:
depends:
- oceanbase-ce
servers:
- 192.168.28.54
- 192.168.28.55
- 192.168.28.56
global:
listen_port: 2883
prometheus_listen_port: 2884
home_path: /home/admin/obproxy
rs_list: 192.168.28.57:2881;192.168.28.58:2881;192.168.28.59:2881
enable_cluster_checkout: false
cluster_name: obcluster
skip_proxy_sys_private_check: true
enable_strict_kernel_release: false
observer_root_password: xxxxxxx
是先使用这个配置用obd部署了一个集群和obproxy吗,obproxy的配置可以直接依赖ob的配置的
可以看一下obproxy的启动命令吗,或者方便的话重新部署一下这个环境呢,可以通过ocp中的脚本直接部署meta集群+proxy+ocp的
Jette
2022 年12 月 15 日 11:06
#12
我使用OBD命令卸载全部集群,然后使用OBD重新部署了oceanbase和obproxy。但是这种问题的影响是比较大的,所以我想看看能不能找到原因