【使用版本】OceanBase 社区版 V4.2.x
【问题描述】
- 每日合并默认走全量还是增量?什么条件下会自动退化为全量合并?
- 合并期间查询读到的是什么状态的数据(是否读一致性快照)?会不会出现明显的 RT 抖动,还是基本无感?
- 如果一次性批量导入大量历史数据,是手动触发合并比较好,还是等调度自动跑?手动 major freeze 有哪些风险(比如和日常合并撞车)?
- 从视图上怎么观察一次合并的进度和是否卡住?
实验考试里有「转储与合并」这一题,想借这个问题把操作和原理一起搞清楚。
【使用版本】OceanBase 社区版 V4.2.x
【问题描述】
实验考试里有「转储与合并」这一题,想借这个问题把操作和原理一起搞清楚。
default_progressive_merge_num 参数值为 1 或更大数值时。ALTER SYSTEM MAJOR FREEZE;) 以尽快整合这些新加入的数据。这样可以更早地释放由导入操作产生的临时空间,并改善整体查询性能。可以通过查询 oceanbase.CDB_OB_ZONE_MAJOR_COMPACTION 视图来监控当前的合并状态。特别关注 STATUS 列,其可能包含以下几种状态:
IDLE: 表示没有正在进行中的合并。COMPACTING: 表示正处于合并过程中。VERIFYING: 正在校验 Checksum 中。此外,还可以检查 LAST_FINISH_TIME 字段了解上次成功合并的时间点,以及 START_TIME 获取本次合并开始的具体时间。如果发现长时间处于非 IDLE 状态,可能表明合并遇到了问题,需进一步排查原因。
文档片段标题: OceanBase 数据库性能的影响因素 → 合并与统计信息收集 → 合并
文档片段标题: 合并相关参数说明如下表所示
文档片段标题: 本节主要介绍合并的分类、状态及压缩算法
文档片段标题: * 转储
检索到的文档如下:
从备考角度记一个判断口诀会更顺:日常小量写入走增量,批量导入或大范围结构调整再考虑全量,手动 major freeze 尽量避开业务高峰和系统自带的合并窗口。判断是不是卡住时,先看合并状态视图里是正在合并还是校验,再结合开始时间和上次完成时间,别只看磁盘 IO 高就下结论。