更新时间:2022-08-16 GMT+08:00

重分布

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

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

当前重分布支持离线重分布在线重分布种模式,默认情况下,提交重分布任务时将选择离线重分布模式。

  • 重分布功能8.1.1.200及以上版本支持。
  • 只有在扩容之后,集群任务信息为“待重分布”状态时才能手动使用“重分布”功能,其他时段该功能不可使用。
  • 在扩容阶段也可以选择重分布模式等高级配置,详情参见设置高级配置

离线重分布

注意事项

  • 离线重分布模式下数据库不支持DDL和DCL操作,正在重分布的表只支持DQL操作。
  • 表重分布期间会对表加共享锁,所有插入、更新、删除操作和表DDL操作都会长时间阻塞,会出现等锁超时情况。在重分布执行过程中,用户应当避免执行超过20分钟的查询(在重分布执行时申请写锁的默认时间为20分钟)。否则可能导致重分布出现等待加锁超时失败的问题。

操作步骤

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

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

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

在线重分布

注意事项

在线重分布模式下数据库支持部分DDL和DCL操作。

  • 正在重分布的表支持插入、删除、更新和部分DDL语法。支持功能如下:
    • 重分布过程中用户可进行正在重分布的本地表的INSERT、DELETE、UPDATE、MERGE INTO、OVERWRITE、UPSERT业务。
    • 重分布过程中用户可进行正在重分布的本地表跨节点组的关联查询业务。
    • 重分布过程中用户可进行正在重分布的本地表的DROP、TRUNCATE、TRUNCATE-PARTITION业务。
  • 正在重分布的表不支持功能如下:
    • 正在重分布过程中用户不能执行ALTER TABLE语句,典型包括增加、删除字段,重命名,修改schema,但TRUNCATE PARTITION除外。
    • 表正在重分布过程中用户不能创建、修改、删除索引。
    • 表正在重分布过程中用户不能对该表执行vacuum full和cluster语句。
    • 表正在重分布过程中用户不能修改字段依赖的SEQUENCE对象,包括创建和修改字段依赖的SEQUENCE对象,典型的语句是CREATE/ALTER SEQUENCE ... OWNED BY。

操作步骤

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

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

  4. 在“重分布”页面的“高级配置”单击“自定义”并选择“在线模式”,单击“下一步:确认”提交重分布任务。