本文是基于OceanBase V2.2.77版本 官方文档 做的学习记录,主要是目的是进行OBCP 考试,通过学习文档,希望了解OceanBase知识,最终考过OBCP。go!
本文内容大部分都是OceanBase 官网资料,做了一些比较显著的标志。
自动触发转储
租户的 MemTable 内存使用达到触发条件即触发转储。
租户在创建时指定了租户的内存大小,租户的内存分为动态可伸缩内存和 MemTable。OceanBase 数据库会根据 MemTable 的内存使用比例决定进行转储或者合并释放 MemTable 的内存,该比例由配置项 freeze_trigger_percentage 控制。
通过freeze_trigger_percentage 决定MemStore 内存占用到达其上限的百分比后就进行冻结(转储和合并的前置动作)。
通过 minor_freeze_times 参数来判断当 MemStore 内存使用达到 freeze_trigger_percentage 时进行转储还是合并。 minor_freeze_times 决定是转储还是合并。
minor_freeze_times 的值为 0 可以关闭转储,进而每次当 MemStore 内存使用达到 freeze_trigger_percentage 时进行合并。
由于合并带来的影响比转储大,通常不建议关闭转储功能。
freeze_trigger_percentage
freeze_trigger_percentage 用于设置触发全局冻结的租户使用内存阈值。
如果开启了自动触发全局冻结,则当租户使用的内存达到该阈值时,会触发全局冻结。自动触发全局冻结开关的有参数enable_global_freeze_trigger 设置。
enable_global_freeze_trigger
enable_global_freeze_trigger 用于设置是否开启自动触发全局冻结。
属性 | 描述 |
|---|---|
参数类型 | 布尔类型 |
默认值 | False |
取值范围 |
|
是否重启 OBServer 生效 | 否 |
注意:该配置项保持保持默认值,不推荐使用。
手动触发转储
转储操作命令的语法:
ALTER SYSTEM MINOR FREEZE [zone] | [server_list] | [tenant_list] | [replica]
各参数的取值格式:
参数 | 格式 |
|---|---|
zone | Zone_name |
server_list | SERVER = ip_port_list |
tenant_list | TENANT = tenant_name [, tenant_name ...] |
replica | PARTITION_ID = 'partition_idx%partition_count@table_id' |
操作命令
集群级别的转储
obclient> ALTER SYSTEM MINOR FREEZE;Server 级别的转储
obclient> ALTER SYSTEM MINOR FREEZE server = ('10.10.10.1:2882');租户级别的转储
obclient> ALTER SYSTEM MINOR FREEZE tenant = ('prod_tenant');Replica 级别的转储
obclient> ALTER SYSTEM MINOR FREEZE ALTER partition_id = '8%0@1099511627933';




