批量导入场景下,例如主库为 2-2-2 集群,备库为 1-1-1 集群,如果主备库配置不一致,会导致备集群需要承担更大的压力。这种场景下,备集群内存占用量很大,会导致主集群与备集群数据不同步。本文主要介绍在批量导入结束后,如何调整参数以提升同步效率。
适用版本
OceanBase 数据库 V2.2.30 及后续版本。
配置步骤
可以根据场景,在备集群上调整以下参数。
注意以下参数需根据实际情况(服务器 CPU 数量、内存大小)动态调整,有关具体参数值请联系 OceanBase 技术支持。
- 根据备集群服务器的 CPU 数量,调整 L0 与 L1 转储并发数。
- 其中 _mini_merge_concurrency 用于控制 OceanBase 数据库 L0 转储的工作线程数,minor_merge_concurrency 用于控制 OceanBase 数据库 L1 转储的工作线程数。
obclient> ALTER SYSTEM SET _mini_merge_concurrency = 20; obclient> ALTER SYSTEM SET minor_merge_concurrency = 48;
- 说明_mini_merge_concurrency 设置为 0 时,由 minor_merge_concurrency 参数控制 OceanBase L0、L1 的通用转储工作线程数。配置 _mini_merge_concurrency 参数后,L0 转储的工作线程与通用转储工作线程独立。
- 减少触发冻结转储的比例。
- freeze_trigger_percentage 用于设置触发全局冻结的租户使用内存阈值。该参数越小,就会越发频发地进行转储,从而减少备库内存占用。
obclient> ALTER SYSTEM SET freeze_trigger_percentage = 40;
- 调大系统的 IO 限速。
- sys_bkgd_io_low_percentage 用于设置系统后台 IO 最少占用百分比,sys_bkgd_io_high_percentage 用于设置系统后台 IO 最高占用百分比。
obclient> ALTER SYSTEM SET sys_bkgd_io_low_percentage = 100; obclient> ALTER SYSTEM SET sys_bkgd_io_high_percentage = 100;
- 注意sys_bkgd_io_low_percentage 与 sys_bkgd_io_high_percentage 仅推荐在备库修改,在主库配置该参数会影响写入速度。
关于上文提到的各配置项的详细信息,请参见《OceanBase 数据库 参考指南》中 配置项 章节。