oceanbase处理任务得时候并行度和什么有关系,我现在有五台机器,分为了3个zone,zone1 2台机器,zone2 2台机器,zone3 1台机器,官网文档说每个zone的unit不能大于节点数,那我的节点是5个,能配置5个unit ,处理任务的并行度也是5吗,还有什么方法能够提高 并行度

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

3zone。5个unit zone设置优先级为同级别情况下可以让你的业务分流,并不是提高并行度概念。
可以开启并发方法提供并行度;

可以开启并发方法提供并行度;具体怎么实现

@论坛小助手 ob如何开启并发

1 个赞

在 OceanBase 中,可以通过以下几种方法开启并发并提供并行度:

  1. Auto DOP (自动并行度): 开启 Auto DOP 后,优化器可以自动为 SELECT/DELETE/UPDATE/INSERT 等操作开启并行执行。详情请参考 Auto DOP
  2. 表级并行 Hint: 可以在 SQL 语句中使用 PARALLEL Hint 来指定并行度,例如:
    CREATE /*+ PARALLEL(3) */ INDEX IDX ON t1(c2);
    
    详情请参考 并行 DDL
  3. 全局并行 Hint: 在 SQL 语句中使用全局并行 Hint 来指定并行度,例如:
    SELECT /*+ PARALLEL(4) */ * FROM table_name;
    
  4. 系统变量配置: 通过设置系统变量来指定并行度,例如:
    SET GLOBAL parallel_degree_policy = 'MANUAL';
    SET GLOBAL default_parallel_degree = 4;
    
  5. Schema DOP: 在表的 Schema 中指定并行度,例如:
    ALTER TABLE table_name PARALLEL 4;
    

需要注意的是,这些并行开启方式的优先级从高到低依次为:表级并行 Hint > 全局并行 Hint > 系统变量配置 > Schema DOP。详情请参考 并行开启方式及优先级

检索到的文档如下:

  1. 设置并行执行并行度
  2. Auto DOP
  3. 并行开启方式及优先级
  4. 并行执行分类与优化
2 个赞

我的业务比较单一只需要一个租户,现在3个zone,5台机器,建了5个unit,如何绑定在一个用户下,目前是 zone1 2台机器 zone2 2台机器 zone3 三台机器 ,RESOURCE_POOL_LIST (‘rp_zone1’,‘rp_zone2’,‘rp_zone3’); 绑定的话会报ERROR 4179 (HY000): pools belong to one tenant with different unit num are not allowed 是因为 因为 rp_zone3 的 Unit 数量和前两个不同吗

1 个赞

是的,报错提示了,unit num数量不一致

1 个赞

那如果我想把这些全部资源都用在一个租户上,最简单的方法是需要建5个zone吗,还有其他的方法吗

1 个赞

5个zone可以设置3个副本吗,具体怎么实现

1 个赞

666学习下经验

1 个赞

我感觉看业务情况,如果各表之间关联性不大,或者各表能明显分类的,可以建多个zone,然后把同类的表归类到一起,这样可以实现分布式数据库充分利用每台机器的资源,但这种情况建多个租户可能管理上更好一些。
如果各表之间关联性很大,基本都是要相互关联查询的,或者表之间都是在一个事务里的,那可能不太好利用分布式数据库,最好就建2个zone,多出来的一台放ocp和仲裁,实现2F1A的模式。

1 个赞

可以创建资源池时候,只填写三个zone

租户内每个zone中unit数量要一样