---
title: "动态分区管理任务 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 动态分区管理任务 OceanBase 数据库动态分区管理新增系统包 DBMS_PARTITION ，提供触发动态分区管理的子程序 MANAGE_DYNAMIC_PARTITION() 。 定时触发动态分区管理 动态分区管理任务基于 PL 系统包 DBMS_SCHEDULER 定时触发，在用户租户创建时内置定时动态分区…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 动态分区管理任务

更新时间：2026-01-24 18:54:05

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/300.database-object-management/200.manage-object-of-oracle-mode/200.manage-partitions-of-oracle-mode/260.dynamic-partition-of-oracle-mode/500.dynamic-partition-management-task-of-oracle-mode.md)  

OceanBase 数据库动态分区管理新增系统包 `DBMS_PARTITION`，提供触发动态分区管理的子程序 `MANAGE_DYNAMIC_PARTITION()`。

## 定时触发动态分区管理

动态分区管理任务基于 PL 系统包 `DBMS_SCHEDULER` 定时触发，在用户租户创建时内置定时动态分区管理任务 `SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY` 和 `SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY`，定期调用 `DBMS_PARTITION.MANAGE_DYNAMIC_PARTITION()`。

- `SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY` 调度 `TIME_UNIT` 为 `hour` 的动态分区管理，每个整点调度一次，调度时间不可修改。
 - `SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY` 调度 `TIME_UNIT` 为 `day`、`week`、`month`、`year` 的动态分区管理，每天调度一次，默认为 0 点调度。用户可修改调度时间，避开 DDL 业务高峰期。

### 定时动态分区管理任务查询

可以在用户租户下，通过 `sys.DBA_SCHEDULER_JOBS` 视图指定 `JOB_NAME` 为 `SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY` 或 `SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY` 查看定时动态分区管理任务。

**示例如下：**

- 指定 `JOB_NAME` 为 `SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY`。

  ```sql
  SELECT JOB_NAME, JOB_ACTION, START_DATE, REPEAT_INTERVAL, ENABLED, NEXT_RUN_DATE, MAX_RUN_DURATION, COMMENTS
  FROM sys.DBA_SCHEDULER_JOBS
  WHERE JOB_NAME = 'SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY'\G

  ```

  返回结果如下：

  ```shell
  *************************** 1. row ***************************
          JOB_NAME: SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY
        JOB_ACTION: DBMS_PARTITION.MANAGE_DYNAMIC_PARTITION(null, 'DAY,WEEK,MONTH,YEAR')
        START_DATE: 2025-04-16 00:00:00.000000
   REPEAT_INTERVAL: FREQ=DAILY;INTERVAL=1
           ENABLED: 1
     NEXT_RUN_DATE: 2025-04-17 00:00:00.000000
  MAX_RUN_DURATION: 3600
          COMMENTS: used to perform manage dynamic partition periodically
  1 row in set

  ```
 - 指定 `JOB_NAME` 为 `SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY`。

  ```sql
  SELECT JOB_NAME, JOB_ACTION, START_DATE, REPEAT_INTERVAL, ENABLED, NEXT_RUN_DATE, MAX_RUN_DURATION, COMMENTS
  FROM sys.DBA_SCHEDULER_JOBS
  WHERE JOB_NAME = 'SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY'\G

  ```

  返回结果如下：

  ```shell
  *************************** 1. row ***************************
          JOB_NAME: SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY
        JOB_ACTION: DBMS_PARTITION.MANAGE_DYNAMIC_PARTITION(null, 'HOUR')
        START_DATE: 2025-04-15 15:00:00.000000
   REPEAT_INTERVAL: FREQ=HOURLY;INTERVAL=1
           ENABLED: 1
     NEXT_RUN_DATE: 2025-04-16 18:00:00.000000
  MAX_RUN_DURATION: 3600
          COMMENTS: used to perform manage dynamic partition periodically
  1 row in set

  ```

### 定时动态分区管理任务修改

可在用户租户下修改当前租户的定时动态分区管理任务。

#### 禁用定时分区管理任务

```sql
CALL DBMS_SCHEDULER.DISABLE('SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY');

```

```sql
CALL DBMS_SCHEDULER.DISABLE('SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY');

```

#### 启用定时分区管理任务

```sql
CALL DBMS_SCHEDULER.ENABLE('SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY');

```

```sql
CALL DBMS_SCHEDULER.ENABLE('SCHEDULED_MANAGE_DYNAMIC_PARTITION_HOURLY');

```

#### 修改定时分区管理任务每日调度时间

仅可修改 `SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY` 定时任务的每日调度时间。例如，假设当前时间为 `2025-03-11 10:00:00`，希望将调度时间改为每日的 12 点：

```sql
CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_MANAGE_DYNAMIC_PARTITION_DAILY', 'START_DATE', '2025-03-11 12:00:00');

```

下次调度时间为 `2025-03-11 12:00:00`，后续每天 12 点调度。

## 手动触发动态分区管理

直接调用 `DBMS_PARTITION.MANAGE_DYNAMIC_PARTITION()` 即可触发一次动态分区管理任务：

```sql
CALL DBMS_PARTITION.MANAGE_DYNAMIC_PARTITION();

```

`MANAGE_DYNAMIC_PARTITION` 有两个参数：`precreate_time` 和 `time_unit`。详细介绍信息，参见 [MANAGE_DYNAMIC_PARTITION](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004480162)。

- 指定 `precreate_time` 时，将取指定值和表上 `precreate_time` 中的较大值进行预创建分区。示例如下：

  ```sql
  CALL DBMS_PARTITION.MANAGE_DYNAMIC_PARTITION('3DAY');

  ```
 - 指定 `time_unit` 时，仅表的 `time_unit` 与指定 `time_unit` 匹配时，才会进行动态分区管理。示例如下：

  ```sql
  CALL DBMS_PARTITION.MANAGE_DYNAMIC_PARTITION(NULL, 'day, week');

  ```

## 动态分区管理任务历史执行记录查询

视图 [DBA_OB_TENANT_EVENT_HISTORY](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004477285) 中记录当前租户下动态分区管理任务的历史执行情况，包含执行成功和失败的 table id 信息：

```sql
SELECT * FROM sys.DBA_OB_TENANT_EVENT_HISTORY
WHERE EVENT = 'MANAGE_DYNAMIC_PARTITION';

```

返回结果如下：

```shell
+------------------------------+----------------+--------------------------+-----------------------+--------------------------+----------------------+--------+-------+--------+-------+--------+-------+--------+-------+--------+------------+----------------+----------+-----------------------------------+-----------+----------+-----------+
| TIMESTAMP                    | MODULE         | EVENT                    | NAME1                 | VALUE1                   | NAME2                | VALUE2 | NAME3 | VALUE3 | NAME4 | VALUE4 | NAME5 | VALUE5 | NAME6 | VALUE6 | EXTRA_INFO | SVR_IP         | SVR_PORT | TRACE_ID                          | COST_TIME | RET_CODE | ERROR_MSG |
+------------------------------+----------------+--------------------------+-----------------------+--------------------------+----------------------+--------+-------+--------+-------+--------+-------+--------+-------+--------+------------+----------------+----------+-----------------------------------+-----------+----------+-----------+
| 15-APR-25 04.00.04.528017 PM | DBMS_PARTITION | MANAGE_DYNAMIC_PARTITION | SUCCESS_TABLE_ID_LIST | [500004]                 | FAILED_TABLE_ID_LIST | []     | NULL  | NULL   | NULL  | NULL   | NULL  | NULL   | NULL  | NULL   | NULL       | xxx.xx.xxx.xxx |     2882 | YB42AC1E87C3-000632CB999BC733-0-0 |   4505353 |        0 | NULL      |
+------------------------------+----------------+--------------------------+-----------------------+--------------------------+----------------------+--------+-------+--------+-------+--------+-------+--------+-------+--------+------------+----------------+----------+-----------------------------------+-----------+----------+-----------+
1 rows in set

```

## 相关文档

- [动态分区概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479306)
 - [创建动态分区表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479304)
 - [查看动态分区表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479308)
 - [修改动态分区表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479307)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
