obce 考试使用sysbench 压测出现 4030 报错为何没能在gv$sql_audit 查找到4030相关错误信息

OBCE 有道考题,使用sysben进行压测,由于内存不足报 4030错误:
我先创建了ob_mysql租户
然后执行
sysbench
–db-driver=mysql
/usr/share/sysbench/oltp_read_write.lua
–tables=20
–table-size=600000
–mysql-host=192.168.0.122
–mysql-port=2883
–mysql-user=root@ob_mysql#obexam
–mysql-password=‘obce_TEST1’
–threads=1000
–report-interval=10
–time=60
–db-ps-mode=disable
prepare
模拟出来4030报错,如附件截图,但我在 gv$sql_audit 却查找不到相关 4030错误的SQL语句,甚至没有 4030报错号

[root@ocp ~]# mysql -h192.168.0.122 -uroot@sys#obexam:1754397907 -P2883 -A -Doceanbase -c -p’OBexampas123%^&’
MySQL [oceanbase]> select distinct(ret_code) from gv$sql_audit;
±---------+
| ret_code |
±---------+
| 0 |
| -5019 |
| -5024 |
| -6003 |
| -4012 |
| -6212 |
| -6004 |
| -5134 |
| -6002 |
±---------+
9 rows in set (0.13 sec)
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

3 个赞

用户问题总结:在使用 sysbench 对 OceanBase 数据库进行压力测试时遇到了错误码为 4030 的错误,但检查 gv$sql_audit 表未能找到与该错误码相关的信息,请求解决方案。

首先,您可以尝试使用 obdiag 工具来收集有关的诊断信息,特别是关于事务处理和错误日志的部分,这有助于我们更准确地定位问题的原因。

日志采集场景: 事务其他错误
日志采集命令: obdiag gather scene run --scene=observer.transaction_other_error --env “{error_codes=’-4030’}”

此外,为了能够更全面地理解这个问题并给出有效的解决方案,我们还需要了解一些额外的信息:

  1. 您能否提供更多关于 sysbench 测试的具体配置,例如测试的类型、并发数量等?
  2. 当发生 4030 错误时,您的 OceanBase 版本是多少?是否应用了任何特定的补丁或更新?
  3. 能否提供 sysbench 压测脚本中使用的 SQL 语句示例,以便我们了解可能触发此错误的操作类型?
  4. 除了 4030 错误外,系统是否有其他异常表现,如性能下降、资源消耗过高(CPU、内存、I/O 等)?
  5. 在遇到此问题的时间段内,OceanBase 集群是否经历了任何维护操作,例如参数调整、硬件变更等?

请您按照上述命令执行日志收集,并提供以上所需信息,我们将基于这些信息进一步分析问题原因。感谢您的配合。

附上敏捷诊断工具 obdiag 使用帮助链接

3 个赞

学习一下,积累经验。

2 个赞

有没有一种可能,你查的时候刚好sqlaudit刷没了 :joy:

2 个赞

1、sysbench 执行的具体配置如下
sysbench
–db-driver=mysql
/usr/share/sysbench/oltp_read_write.lua
–tables=20
–table-size=600000
–mysql-host=192.168.0.122
–mysql-port=2883
–mysql-user=root@ob_mysql#obexam
–mysql-password=‘obce_TEST1’
–threads=1000
–report-interval=10
–time=60
–db-ps-mode=disable
prepare
这一步执行时遇到4030就很快中断了,但在SQL中查不到

2、OB 的版本 V3.2.3 企业版,按照 OBCE 考试要求部署的
3、sysbench 使用的语句就是 OBCE 考试中 内存用满的问题分析 这个题目对应的相应语句
4、除了 4030 ,执行的时候也经常会遇到 4012 报错,CPU、内存、IO正常
5、没有调整参数

2 个赞

很奇怪的是每次测试 4012 的报错都会在 sqlaudit中存在,但4030 没记录到,而且我当时还提前先执行了租户转储。

3 个赞

应该是没有来得及写入吧

1 个赞

过滤下observer日志,4030的错误码,找到trace_id,根据trace_id去查找,或者从OCP上去查找

2 个赞

大概率被刷了。
可以去看 obproxy_error.log

2 个赞

实验一把看看

过滤了所有 observer 日志,没看到 4030 相关信息

1 个赞

就是实验中发现的

1 个赞

你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节。建议你通过以下方式寻求帮助:
1.如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;
2.如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
OceanBase官网商务咨询

https://www.oceanbase.com/contactus?fromPage=https%3A%2F%2Fwww.oceanbase.com%2Fsoftwarecenter-enterprise&dataSources=softwarecenter-enterprise_footercontact_d2022