在一个数据库中,部分表在进行操作时(如删除表、添加数据、查询数据等),出现 4152 Null Value 问题,而其他表却没有问题,是什么原因导致的?怎么处理?使用的版本是Oceanbase社区版4.1.1
1)系统租户设置
alter system set enable_rich_error_msg=true;
2)执行复现sql
3)通过返回的节点和trace_id信息 去对应节点过滤日志
grep “$trace_id” observer.log
grep “$trace_id” rootservice.log
4)提供相关日志信息,顺便可以使用obdiag工具进行集群巡检看下是否有其他异常。https://www.oceanbase.com/docs/obdiag-cn
感谢回复,在执行第一步时出现错误, 5099 System config unknown
需要系统租户root@sys执行,业务执行会报错这个信息。
请问这个问题可能是什么原因导致的呢?我可以从哪些方向出发解决错误,或者通过某些其他方式提供给你一些信息?
现在整个数据库都无法创建表或者删除表,库中部分表无法插入数据等操作,都是Null Value错误
倒是从商业侧oracle租户下使用临时表出现过类似的报错问题,社区版不支持oracle也没有临时表,因此需要你按上面操作提供下trace信息分析下。
你好,能从这些日志中看到一些信息吗?sql是:drop table if exists channel;
[2024-01-23 09:53:41.162933] TRACE [TRACE] after_process (obmp_base.cpp:154) [2017786][T1_L0_G0][T1][YB42C0A8029A-00060ACD905C7BAE-0-0] [lt=33] [err query](TRACE=begin_ts=1705974821162924 2024-01-23 01:53:41.162924|[process_begin] u=0 in_queue_time:53, receive_ts:1705974821162870, enqueue_ts:1705974821162873|[start_sql] u=1 addr:{ip:“127.0.0.1”, port:61754}|[query_begin] u=0 trace_id:YB42C0A8029A-00060ACD905C7BAE-0-0|[before_processor_run] u=3 |[session] u=1 sid:3221613541, tenant_id:1|[process_end] u=3 run_ts:1705974821162928|[process_ret] u=0 process_ret:-4009|total_timeu=8)
,错误信息是 4152 - Null Value,当然,不只是删除表的sql,还有其他的比如向表中添加数据、查询表数据、修改表结构等等,这些都会出现 4152 错误,这些操作只针对数据库中的部分表会出现,其他表的查询、插入等不受影响,但是数据库内也不能创建新表、复制表结构、修改表结构等操作,错误仍然是 4152 错误。
提供的这个日志和上面说的获取trace信息对不上,可以提供复现的trace截图和过滤的trace日志。