首批通过分布式安全可靠测评,为关键业务系统打造
Too many frozen memtables ret=-4263
更新时间:2026-06-12 08:51
适用版本
OceanBase 数据库所有版本。
问题现象
报错 ERROR 4263 (HY000): Minor freeze not allowed now。
问题原因
当报错 Too many frozen memtables 时,是由于冻结 MemTable 的数量过多,超过了上限 7 个,导致无法再冻结。
冻结 MemTable 数量过多,可能是由于转储出现了问题,或者转储太慢导致的。
解决方法
转储失败。
OceanBase 数据库 V3.2 版本之前。
查看正在执行中的任务,可能转储正在执行中。
obclient> select * from __all_virtual_sys_task_status;查看是否有转储执行失败的日志, pkey 处填具体的分区键。
grep "dag_ret:-.*pkey" observer.log.20xxxx*
OceanBase 数据库 V3.2 版本之后,OceanBase 数据库 V4.0 版本之前。
查询 compaction_diagnose 诊断视图,看看是否有异常发生。
obclient> select * from __all_virtual_compaction_diagnose_info;OceanBase 数据库 V4.0 版本之后。
查询 compaction_diagnose 诊断视图,看看是否有异常发生。
obclient> select * from gv$ob_compaction_diagnose_info;
转储慢。
查看历史记录,分析转储慢的原因。
obclient> select * from __all_virtual_partition_compaction_history where table_id = xxx and partition_id = xx and merge_type like "mini %";可能性最大的原因是数据量大,写入过猛,转储跟不上数据写入,可以考虑做出合理的调整:调大转储线程、打开并行转储、改大转储触发的条件等。