管理分区计划

更新时间:
复制 MD 格式

本文档旨在介绍如何在 ODC 上使用分区计划,包括对新建和删除的表分区进行自动管理。

背景信息

分区计划是专门针对 Range 分区的扩展功能,ODC 支持依据用户设置的分区策略对 Range 分区表进行自动管理,用户无需手动创建新分区,以方便维护 Range 分区表。

  • Range 分区:Range 分区是最常见的分区类型,通常与日期一起使用。在进行 Range 分区时,数据库根据分区键的值范围将行映射到分区。详情请参见 设置分区规则 和 分区类型。

  • 分区计划:分区计划是专门针对 Range 分区的扩展功能,ODC 支持依据用户设置的分区策略对 Range 分区表进行自动管理,用户无需手动创建新分区,以方便维护 Range 分区表。

  • 创建策略:ODC 支持依据用户设置的分区细则对表进行自动分区。创建分区策略方式包括顺序递增和自定义。

    • 顺序递增:创建分区策略方式,仅适用于时间、数字和字符字段类型。

      image

    • 自定义:创建分区策略方式,所有字段类型支持通过自定义 SQL 表达式创建分区策略。

      image

  • 删除策略:根据设置的分区保留数量保留最新的分区并删除多余的分区。

分区计划执行流程

image

  1. 对表设置创建分区策略/删除分区策略。

  2. 指定策略执行周期。

  3. 审批任务流程。

  4. 执行分区计划。

注意事项

  • 仅支持 OceanBase MySQL 和 OceanBase Oracle 数据源。

  • 仅支持 Range 分区表。

  • Range 分区表中的最后一个分区上限值为 MAXVALUE 时,数据库不允许新增分区,因此不支持通过 ODC 分区计划任务创建分区策略。

  • 分区计划默认每小时的 00 分 00 秒执行。

  • 数据库已存在一个分区计划时,新创建的分区计划审批通过后覆盖原有分区计划。

  • 如果表属于表组(tablegroup),创建分区可能会失败或破坏负载均衡,请谨慎配置创建策略。

  • 新建分区可能会导致表组(tablegroup)失效,因为同属于一个表组的表必须拥有完全一致的分区,而新建分区可能会破坏这种现状,导致表组失效。

  • 如果表包含全局索引,删除分区会导致全局索引失效,请谨慎操作;如果选择重建全局索引可能因耗时较久导致业务问题,或者重建全局索引失败导致线上问题。

  • 重建全局索引选项仅对 Oracle 模式下有效,MySQL 模式下无此选项,因 MySQL 模式下默认会重建全局索引。

创建分区计划

示例:在数据源 mysql4253 下数据库 test_data 中,每隔 1 个月预创建 1 个 order 表分区。

信息项

示例值

项目名称

odc_test

所属数据源

mysql4253

数据库名称

test_data

表名称

order

  1. 在 SQL 窗口中,编辑 SQL 语句以创建表 order。

    image

    CREATE TABLE `order` (
    `time` date NOT NULL,
     `parti_key` int(11),
     `name` varchar(120) DEFAULT NULL
    ) partition by range columns(time, parti_key)
    (partition p2023_01 values less than ('2023-01-01', 20230101),
    partition p2023_02 values less than ('2023-02-01', 20230201))
  2. 在 SQL 开发窗口的 工单 页签中单击 分区计划 > 新建分区计划。

    image

  3. 在 新建分区计划 面板中指定以下信息。

    image

    信息项

    说明

    数据库

    选择创建分区计划所属数据库。

    分区策略

    勾选所属库中的 Range 分区表,并单击image编辑对应的分区策略。具体配置请参见设置分区策略和分区策略使用示例。

    说明
    • 勾选 分区策略 右侧的 仅显示未设置的表 时,支持过滤未设置的表。

    • 勾选 Range 分区表时,支持批量设置分区策略。

    设置策略执行周期

    1. 创建策略执行周期:设置所有的分区创建策略的执行时机,例如每晚 2 点执行。

    2. 删除策略执行周期:勾选自定义删除策略执行周期,设置所有的分区删除策略的执行时机,如果不勾选,分区删除策略将会和分区新建策略一起被调度执行。

    示例:创建策略执行周期每晚 3 点,删除策略执行周期每晚 1 点。表示每晚 3 点将会运行该数据库下所有的分区创建策略,每晚 1 点将会运行该数据库下所有的分区删除策略。

    image

    任务设置

    选择任务错误处理方式:

    • 停止任务:停止任务为默认方式,运行脚本的过程中出现错误时会停止运行。

    • 忽略错误继续任务:选择忽略错误继续任务方式,在运行脚本出现错后将跳过错误语句继续执行。

    执行超时时间

    默认 2 小时。

    备注

    描述项目的业务背景信息,例如变更目的、预期目标等。

  4. 指定上述信息后,单击面板右下角的 提交 按钮完成创建分区计划任务。

  5. 任务生成后会自动弹出 任务中心 面板,在任务中心可以查看任务审批状态和任务信息。

    image

查看分区计划

任务信息

  1. 在 工单 的分区计划列表中,单击操作列中的 查看 按钮。

    image

  2. 在弹出的 任务详情 面板中,单击 任务信息 页签查看任务基本信息和设置信息。

    信息项

    说明

    任务基本信息

    显示 任务状态、任务编号、任务类型、所属数据源、风险等级、备注、创建人 和 创建时间 等信息。

    任务设置信息

    显示创建分区计划任务时所选择的 Range 分区表的分区策略信息。

  3. 在任务信息面板右下角,单击 再次发起,可以重新发起任务。

任务流程

  1. 在 任务详情 面板中,单击 任务流程 页签查看 发起任务状态、审批状态、执行状态 和 完成结果 等信息。

  2. 在面板右下角,单击 再次发起,可重新发起任务。

关联记录

  1. 在 任务详情 面板中,单击 关联记录 页签查看 任务编号、所属库、创建时间、任务状态 和 查看 操作等信息。

  2. 在面板右下角,单击 再次发起,可重新发起任务。

任务日志

  1. 在 任务详情 面板中,单击 任务日志 标签查看任务的全部日志和告警日志。

    image

    信息项

    说明

    全部日志

    全部日志显示任务的 INFO、ERROR 和 WARN 日志等全量信息。 单击 查找、下载 和 复制 按钮,可查找信息、下载或复制全部日志信息。

    告警日志

    告警日志单独显示任务的 ERROR 和 WARN 日志。当任务失败时,可通过告警日志查看错误信息。 单击 查找、下载 和 复制 按钮,可查找信息、下载或复制告警日志信息。

  2. 单击 再次发起,可重新发起任务。

导入 分区计划任务

您可以将云数据库 OceanBase 中的实例迁移到 OB Cloud,并将已迁移实例中包含的分区计划任务迁移到 OB Cloud。

步骤一:从云数据库 OceanBase 导出分区计划任务

  1. 在 云数据库 OceanBase 管理控制台 的左侧导航栏中,单击 数据研发 。

  2. 单击 工单 > 分区计划 ,在 分区计划页面中,勾选目标工单,单击 批量导出。

    image

  3. 在导出定时任务页面中,确认需要导出的任务,单击 全部导出。

    image

  4. 导出成功后,在弹窗中复制密钥,并妥善保存,在后续导入该 分区计划时需要填写。

    image

步骤二:导入分区计划任务到 OB Cloud

  1. 在 云数据库 OceanBase 管理控制台 的左侧导航栏中,单击 生态集成,选择 SQL 开发 > OceanBase 开发者中心。

    image

  2. 在开发者中心,单击 工单 > 分区计划,在 分区计划页面中,勾选目标工单,单击 导入 分区计划。

    image

  3. 在导入分区计划的页面中,添加步骤一中导出的 zip 文件,填写 文件密钥,选择导入项目后,单击 下一步:预览。

    image

  4. 在预览页面中,选择新的目标数据库后,勾选 我已确认导入的工单新旧数据库对象一致,单击 导入。

    image

  5. 导入成功后,可以在分区计划列表中看到导入的分区计划。

    image

相关文档