下表为上述语法中各参数的取值格式:
示例 1:
集群级别转储:
示例 2:
Server 级别转储:
示例 3:
租户级别转储:
ALTER system minor freeze tenant = ('prod_tenant');
示例 4:
Replica 级别转储:
最常用的控制参数是 minor_freeze_times
,该参数控制在转储多少次后自动转化为合并。如果该参数设置为 0,表示关闭转储功能,每次租户 Memtable 内存使用达到阀值不会触发转储而是直接进行合并。通常根据具体的业务需求来进行配置。
转储的动作可以通过系统表进行查看。通过查看转储的时间点,转储的触发和转储的次数可以观察集群内存的使用情况。同时可以调整租户内存的大小,可以配置转储次数进而满足不同的业务需求场景。
示例 1:
下述示例语句展示了通过系统租户如何从 Root Service 角度查看最近 10 次的转储记录。
select * from __all_rootservice_event_history where event like '%minor%' order by gmt_create limit 10;
示例 2:
下述示例语句展示了通过系统租户如何查看具体的某台 OBServer 的转储情况。
示例 3:
下述示例语句展示了通过系统租户如何查看转储后租户的 Active MemStore 是否释放,同时查看 的计数情况。
上述示例语句中查询的内部表 __all_virtual_tenant_memstore_info
的参数说明如下所示:
__all_rootservice_event_history
表中保留7天内数据。__all_server_event_history
表的记录保留2天。- 每次合并都需要先进行一次转储,因此在每天的合并 Duty Time 时间点(默认凌晨 2 点)可以看到转储动作。
__all_virtual_tenant_memstore_info
中的freeze_cnt
的统计对应的是参数minor_freeze_times
。当freeze_cnt
计数达到minor_freeze_times
这个阈值时,下次租户内存使用率达到阈值将触发合并而不是转储。手动触发的转储不会导致freeze_cnt
的计数增加。合并会将 计数清零。