mysql是没问题的。我们原来业务是用mysql实现的,后续准备兼容ob。
好的,我找这边专业的同事来看一下这个问题
您那边mysql驱动版本,golang的版本麻烦提供一下
这两个驱动都试过,都有类似问题
menteslibres.net/gosexy/db/mysql
我这边go的版本是
go version go1.16.14 linux/amd64
麻烦老师帮忙试试。(目前自测的图片是15K左右)
你好,这边想收集下相关的日志
- 打开enable_rich_error_msg开关(后续可以关闭), alter system set enable_rich_error_msg=true;
- 执行程序,此时报错后会包含trace id;
- (需要确认OBD版本大于2.1.0,建议使用最新的obd版本),执行obd obdiag gather plan_monitor --trace_id ${上一步所拿到的trace id} (操作文档在 https://www.oceanbase.com/docs/community-obd-cn-1000000000197047 )
- 上传对应的日志日志包到帖子内即可
如果有操作里不太清楚的也可以回帖
不是直接给trace_id哈,应该是–trace_id ${上一步所拿到的trace id}
完整的命令例如obd obdiag gather plan_monitor deploy_test_cluster --trace_id YB4264586CAD-000605D9FB0BD1C0-0-0
抱歉刚刚没有注意是docker部署的
流程需要做下更改,前两步保留
3.下载诊断工具https://github.com/oceanbase/oceanbase-diagnostic-tool/releases,并解压
4. 进入对应目录,更改这两个地方
配置成实际的值即可
5.执行
./obdiag gather plan_monitor --trace_id ${上一步所拿到的trace id}
完整的命令例如./obdiag gather plan_monitor --trace_id YB4264586CAD-000605D9FB0BD1C0-0-0
6.上传日志包到帖子
麻烦按新的步骤执行下,刚刚是我没有注意这个部署方式
请问下这个配置在哪查啊?镜像哪个配置可以看呢?
在解压完成后进目录,理论上配置了OBCLUSTER那里面的目录即可
cluster_name可以通过查集群配置项获取SHOW PARAMETERS LIKE ‘cluster’; 然后取对应value列的值即可
OBCLUSTER里的那个user和pd是对于集群的,user填root@sys pw如果不存在可以直接用两个单引号括号起来(猜测应该是这个原因所以报错)
配置可以参考

配置完以后,重新执行完对应的go的程序
拿到tranid后执行
./obdiag gather log --scope observer --grep=${上一步所拿到的trace id} --ob_install_dir=${远程主机上的ob_home地址} --since 10m
远程主机上的ob_home地址需要在容器上拿,进容器后看下对应observer的路径,比如为/work/obwork/bin/observer,就填/work/obwork/
另外,在改配置中private_key,这个参数需要使用绝对路径,否则容易报错
obdiag工具可以从官网的下载链接去下:https://www.oceanbase.com/softwarecenter
使用文档:https://www.oceanbase.com/docs/common-obdiag-cn-1000000000164123
go环境: 1.16/1.18
ob: 社区版4.0.0(docker部署)
测试的demo程序,建表语句,上传失败的图片都在附件中。
麻烦老师帮忙测试排查下。
附件
ob问题排查.zip (1.4 MB)
4.2.0版本未出现此问题,可能为已知bug,
仍需要提供日志包进行解析
[root@17e81d020a01 log]# cat /root/ob/log/*|grep YB427F000001-0006071AF6B30C9D-0-0
[2023-10-07 07:41:02.070455] INFO [SERVER] send_error_packet (obmp_packet_sender.cpp:304) [679][T1_TNT_L0_G0][T1][YB427F000001-0006071AF6B30C9D-0-0] [lt=5] sending error packet(err=-4007, extra_err_info=NULL, lbt()=“0xb553efb 0x576de1e 0x5729d96 0x419cc8d 0x3930f2a 0x392f401 0x4602029 0x39277e4 0x46025c7 0xb5380c7 0xb53303a 0x7f428aee8ea5 0x7f428ac1196d”)
[2023-10-07 07:41:02.070493] WARN [SERVER] process (obmp_default.h:42) [679][T1_TNT_L0_G0][T1][YB427F000001-0006071AF6B30C9D-0-0] [lt=26] MySQL command not supported(cmd=24)
[2023-10-07 07:41:02.070508] WARN [SERVER] disconnect (obmp_packet_sender.cpp:710) [679][T1_TNT_L0_G0][T1][YB427F000001-0006071AF6B30C9D-0-0] [lt=13] server close connection(sessid=3221487639, proxy_sessid=0, stack=“0xb553efb 0x5770c5e 0x57430fb 0x419ccb8 0x3930f2a 0x392f401 0x4602029 0x39277e4 0x46025c7 0xb5380c7 0xb53303a 0x7f428aee8ea5 0x7f428ac1196d”)
[2023-10-07 07:41:02.070522] INFO easy_connection_destroy_dispatch (easy_connection.c:3576) [679][T1_TNT_L0_G0][T1][YB427F000001-0006071AF6B30C9D-0-0] [lt=5] Shutting down socket with SHUT_RD, fd(139), conn(172.17.0.9:2881_10.55.69.45:28190_139_0x7f4202a04290 tp=0 t=1696664462068457-1696664462070434 s=0 r=2 io=1446736/101 sq=0), lbt(0xced3429 0xcebb28a 0xb7d5749 0x574311a 0x419ccb8 0x3930f2a 0x392f401 0x4602029 0x39277e4 0x46025c7 0xb5380c7 0xb53303a 0x7f428aee8ea5 0x7f428ac1196d ).
总结,由于测试版本4.0.0不支持sql_nio所导致send long data特性不支持。
另用户的生产环境版本为3.2.3,建议还是使用同版本作为测试环境的版本,由于部分版本特性不一致,可能会导致出现测试环境测试通过,生产环境报错的问题





