更新时间:2025-07-30 GMT+08:00

集群重分布

集群重分布是集群扩容后的一项重要且耗时的任务,集群扩容前业务数据都集中分布在老节点上,扩容之后会新增空的可用节点,此时将老节点的数据均匀分布到新扩容节点的过程称为数据“重分布”,数据“重分布”后将大大提升业务响应速率。

默认情况下,在扩容之后将自动调起重分布任务,为了增强扩容重分布整个流程的可靠性,可以选择在扩容时关闭自动重分布功能,在扩容成功之后再手动使用重分布功能执行重分布任务,在这种分段模式下,扩容和重分布都可以做到失败重试。

当前重分布支持离线重分布在线重分布两种模式,重分布模式和扩容模式一致,如果集群是在线扩容,重分布默认也是在线重分布。

在重分布开始前或重分布暂停过程中,支持对未重分布的表按照schema、表维度设置重分布优先级。

约束与限制

  • 重分布功能8.1.1.200及以上集群版本支持。
  • 只有在扩容之后,集群任务信息为“待重分布”状态时才能手动使用重分布功能,其他时段该功能不可使用。
  • 在扩容阶段也可以选择重分布模式的高级配置,详情参见设置高级配置
  • 重分布队列的排序依据表的relpage大小进行,为确保relpage大小正确,建议在重分布之前对需要重分布的表执行analyze操作。
  • 离线重分布约束如下:
    • 离线重分布模式下数据库不支持DDL和DCL操作,正在重分布的表只支持简单的DQL操作。
    • 表重分布期间会对表加共享锁,所有插入、更新、删除操作和表DDL操作都会长时间阻塞,会出现等锁超时情况。在重分布执行过程中,用户应当避免执行超过20分钟的查询(在重分布执行时申请写锁的默认时间为20分钟)。否则可能导致重分布出现等待加锁超时失败的问题。
  • 在线重分布约束如下:
    • 在线重分布模式下数据库支持部分DDL和DCL操作。
    • 正在重分布的表支持插入、删除、更新和部分DDL语法。支持功能如下:
      • 可进行正在重分布的本地表的INSERT、DELETE、UPDATE、MERGE INTO、OVERWRITE、UPSERT业务。
      • 可进行正在重分布的本地表跨节点组的关联查询业务。
      • 可进行正在重分布的本地表的重命名、修改schema、DROP、TRUNCATE、TRUNCATE-PARTITION业务。
    • 正在重分布的表不支持功能如下:
      • 不支持执行ALTER TABLE语句,典型包括增加、删除字段,增加或删除分区等,但TRUNCATE PARTITION除外。
      • 不支持创建、修改和删除索引。
      • 不支持对表执行VACUUM FULL和CLUSTER语句。
      • 不支持修改字段依赖的SEQUENCE对象,包括创建和修改字段依赖的SEQUENCE对象,典型的语句是CREATE/ALTER SEQUENCE ... OWNED BY。
      • 超过996列的表,表重分布期间不支持UPDATE和DELETE语句,更新删除语句会报错,但允许执行SELECT/INSERT语句。
      • 整个重分布过程中不支持创建、删除或修改Database对象和Tablespace对象。
      • 重分布过程是以表为单位执行,如果用户执行交换分区,分区表和待交换的非分区表有一个完成重分布,一个没有完成重分布,这两个表属于两个节点组,这种情况不支持交换分区,需要等两个表都重分布完之后才能执行交换分区。
  • 查看重分布详情功能8.1.1.200及以上集群版本支持,其中数据表重分布进度详情仅8.2.1及以上集群版本支持。
  • 查看重分布详情功能只有集群处于重分布中、重分布失败或者重分布暂停状态下才能使用,其他时段该功能不可使用,且相关信息展示会有一定延迟。

离线重分布

  1. 登录DWS管理控制台
  2. 选择“专属集群 > 集群列表”。默认显示用户所有的集群列表。
  3. 集群列表中,在指定集群所在行的“操作”列,选择更多 > 节点变更 > 重分布”

    系统将显示“重分布”页面。

  4. 在重分布页面选择默认的离线模式,单击“下一步:确认”提交重分布任务。

在线重分布

  1. 登录DWS管理控制台
  2. 选择“专属集群 > 集群列表”。默认显示用户所有的集群列表。
  3. 集群列表中,在指定集群所在行的“操作”列,选择“更多节点变更 > 重分布”
  4. 在重分布页面的“高级配置”单击“自定义”并选择“在线模式”,单击“下一步:确认”提交重分布任务。

查看重分布详情

  1. 登录DWS管理控制台
  2. 选择专属集群 > 集群列表”。默认显示用户所有的集群列表。
  3. 集群列表中,在指定集群所在行的“任务信息”列,单击“查看详情”
  4. “查看重分布详情”页面可以查看到当前集群的重分布模式、重分布进度、数据表重分布详情等监控信息,可以对重分布进行暂停和恢复,重分布暂停状态可设置重分布优先级,修改重分布并发数等操作。

    重分布中会显示重分布状态、重分布配置、重分布整体进度以及指定数据库下所有数据库表的重分布详情。用户在查看数据表重分布详情时,必须指定一个数据库,且支持按照表的重分布状态和表名作为条件的搜索,由于重分布机制的原因,若某数据库下所有表完成重分布,页面将不会再查询到详细信息。

  5. 重分布暂停状态下,可设置重分布优先级(schema或表维度),设置了排序优先级后,会按照设置的重分布顺序依次进行重分布。用户也可在重分布开始前设置重分布优先级。

    图1 重分布优先级

  6. 重分布过程中可动态调整重分布并发数。

    8.1.0及以下集群版本不支持动态调整,需先暂停重分布。

    图2 重分布并发数

  7. 重分布完成后会显示重分布进度(完成数据量、剩余数据量、完成表数量、剩余表数量、重分布过程中的平均速率)。

    图3 重分布进度