网站策划与运营,做公司网站注意事项,风铃网站具体是做那方面的,电商运营招聘文章出处#xff1a;OceanBase分布式数据库-海量数据 笔笔算数 本文主要介绍什么是冻结和转储。
适用版本
OceanBase 数据库所有版本。
冻结
冻结是指将 Active MEMTable 转化为 Frozen MEMTable 的过程。
冻结的触发方式 手动触发#xff1a;alter system minor freeze… 文章出处OceanBase分布式数据库-海量数据 笔笔算数 本文主要介绍什么是冻结和转储。
适用版本
OceanBase 数据库所有版本。
冻结
冻结是指将 Active MEMTable 转化为 Frozen MEMTable 的过程。
冻结的触发方式 手动触发alter system minor freeze; 某个租户的占用内存超过阈值freeze_trigger_percentage后会自动触发这个租户下所有 MEMTable 的冻结。
如何看 MEMTable 有没有冻结
select * from __all_virtual_table_mgr where table_id xxx and table_type 0;如果没有指定的 table_id可以先查看所有冻结的 MEMTable。
select * from __all_virtual_table_mgr where table_type 0 and is_active 0 limit 10;查看 METable 的情况
当 MEMTable 的 is_active 字段为 1表示是 Active MEMTable。当 MEMTable 的 is_active 字段为 0表示是 Frozen MEMTable表示正在等待转储和释放。
当内存占用过高时如果 MEMTable 没有发生冻结请联系 OceanBase 技术支持进行问题排查。
如果 MEMTable 发生了冻结但是一直没有转储日志中有 MEMTable cannot be minor merged now 的 WARN 报错说明冻结的 MEMTable 不满足转储条件需要联系 OceanBase 技术支持进行问题排查。
如何看一个租户冻结了多少次
select * from __all_server_event_history where event like %freeze%; 转储
转储是将内存中 Frozen MEMTable 持久化到磁盘上生成 mini sstable 的过程在生成 mini sstable 后会释放掉 Frozen MEMTable是系统释放内存的重要手段。
如何判断转储结束
通过 SQL 查询当前系统中是否有冻结的 MEMTable。
select count(*) from __all_virtual_table_mgr where table_type 0 and is_active0; MEMTable 需要满足的转储条件
在 V2.2.x要求 MEMTable 上没有活跃事务。在 V3.x需要检查冻结的状态事务状态的回填日志提交等状态。
如果 MEMTable 发生了冻结通过 select * from __all_virtual_sys_task_status; 查看正在执行中的任务可能转储正在执行中。
冻结和转储是什么关系
冻结当 Active MEMTable 占用内存达到阈值freeze_trigger_percentage的时候或执行了 alter system minor freeze; 命令Active MEMTable 会冻结变成一个 Frozen MEMTable后续的写入会写到新创建的 Active MEMTable 上。转储Frozen MEMTable 转储后会变成磁盘上的 SSTable可能会同时拿到多个冻结 MEMTable 一起执行转储操作。所以冻结和转储不是 1:1 的关系并不是一次冻结后一定对应一次转储。另外冻结和转储是独立的如果有冻结生成了 Frozen MEMTable才会创建转储任务。