创建租户失败:ERROR 4009 (58030): IO error

创建resource unit/resource pool正常,create tenant失败:ERROR 4009 (58030): IO error

资源配额还有吗


新建的resource unit: create resource unit monitor_unit memory_size ‘2g’, max_cpu 4;
新建的resource pool: create resource pool monitor_pool unit=‘monitor_unit’, unit_num=1, zone_list=(‘zone1’, ‘zone2’, ‘zone3’) ;
这样有问题吗

可以先看下官方的文档:OceanBase分布式数据库-海量数据 笔笔算数

ERROR 4009 (58030 ) : IO error

  • OceanBase 错误码:4009
  • 错误原因:READ 或 WRITE 等 IO 相关的系统调用失败。
    cat /etc/sysctl.conf 看下
[test2024@obrd.32c.vd2-s2c0-n0 /home/test2024]
$cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

/etc/sysctl.conf 文件下面全是注释,没有内容

加一下试试看。
(可选)配置 sysctl.conf
和这个echo fs.aio-max-nr = 131072 >> /etc/sysctl.conf

我权限不够,没有办法写配置文件,之前也没有配置过这个文件,可以创建租户的来着

老师,执行的sql和报错麻烦帮忙截图发下

您好,创建用户时的报错截图为:

  1. ob版本是多少?
    部署的方式是什么呢?
    建议还是改一下sysctl.conf文件

ob版本是4.2.1.3;
部署方式使用的是 OBD 白屏部署
还有其他办法可以解决吗,之前好像还可以正常创建用户

disk是否合标

老师帮忙确认下:
1.具体OB的详细版本
2.执行语句对应的sql_audit记录文本
3.以及当时创建租户失败的时间段的OB日志

老师,帮忙取下集群的基本信息:
一、需要您提供给我们集群相关基础信息(如部分已经提供则无需继续提供):
1,root@sys租户登录集群,执行SQL提供下结果:
1),select svr_ip,zone,with_rootserver,status,block_migrate_in_time,start_service_time,stop_time,build_version from oceanbase.__all_server order by zone;
2),select tenant_id,tenant_name,primary_zone,compatibility_mode from oceanbase.__all_tenant;
3),show parameters like ‘%syslog_level%’;
4),show parameters like ‘%syslog_io_bandwidth_limit%’
5),select count(*),tenant_id,zone_list,unit_count from oceanbase.__all_resource_pool group by tenant_id,zone_list,unit_count;
2,登录OB任意一台主机,执行lsblk提供下结果
3,登录OB任意一台主机,执行lscpu | grep Architecture 提供下结果

然后我看报错是io报错,您帮忙取下observer日志和rs节点的rs日志看下(要取对应时间点的完整的日志)。

ob日志帮忙取下对应svr_ip节点的:

SET ob_enable_trace_log=‘ON’;
复现sql
SHOW TRACE; --得到trace_id

根据trace_id过滤下trace日志

老师再帮忙看下ocp上这个集群有什么告警吗

好的好的!我尽快试一下保存日志

前面几步操作结果的截图:
创建租户失败截图


select svr_ip,zone, with_rootserver, status, block_migrate_in_time, start_service_time, stop_time, build_version from oceanbase.__all_server order by zone;截图:

select tenant_id,tenant_name,primary_zone,compatibility_mode from oceanbase.__all_tenant; 截图

show parameters like ‘%syslog_level%’; 截图:

show parameters like ‘%syslog_io_bandwidth_limit%’ 截图:

select count(*),tenant_id,zone_list,unit_count from oceanbase.__all_resource_pool group by tenant_id,zone_list,unit_count; 截图:

lsblk结果:

lscpu结果:

最后
set ob_enable_show_trace=1; 然后创建租户,show trace 时trace log没有看到输出


麻烦获取下日志。发下日志。

为啥这样取不到log:
obclient [(none)]> set ob_enable_show_trace=1;
Query OK, 0 rows affected (0.000 sec)

obclient [(none)]> create tenant monitor resource_pool_list = (‘monitor_pool’), zone_list(‘zone1’, ‘zone2’, ‘zone3’), PRIMARY_ZONE=RANDOM set variables ob_compatibility_mode=‘mysql’, ob_tcp_invited_nodes=’%’ ;
ERROR 4009 (58030): IO error
obclient [(none)]> show trace ;
Empty set (0.011 sec)

obclient [(none)]>