---
title: "清理回收站 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 清理回收站 频繁删除数据库对象并重建，会在回收站产生大量的数据，您可以通过清理回收站的方式来清理这些数据。 清理回收站主要有手动和自动两种方式。系统租户（ sys 租户）可以清理的回收站对象包括 INDEX 、 TABLE 、 DATABASE 和 TENANT 四种类型，MySQL 用户租户可以清理的回收站对象包括…
---
切换语言

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

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

# 清理回收站

更新时间：2026-06-10 17:55:36

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/600.manage/400.high-availability/500.recyclebin-management/500.purge-the-recyclebin.md)  

频繁删除数据库对象并重建，会在回收站产生大量的数据，您可以通过清理回收站的方式来清理这些数据。

清理回收站主要有手动和自动两种方式。系统租户（`sys` 租户）可以清理的回收站对象包括 `INDEX`、`TABLE`、`DATABASE` 和 `TENANT` 四种类型，MySQL 用户租户可以清理的回收站对象包括 `INDEX`、`TABLE` 和 `DATABASE` 等三种类型；Oracle 用户租户可以清理的回收站对象包括 `INDEX` 和 `TABLE` 两种类型。

## 手动清理回收站

您可以通过 `PURGE` 命令手动清理回收站。

### 注意事项

- Purge 操作会删除对象和从属于该对象的对象（即 Database -> Table -> Index）。例如，在 MySQL 模式中，Purge 数据库会删除数据库和从属于该数据库的表和表索引。
 - 当一个对象的上层对象被 Purge，那么当前回收站中关联的下一层对象也会被 Purge。
 - 执行 Purge 操作前，建议您通过回收站对待删除的对象进行确认。执行 Purge 操作后，在 OceanBase 数据库的回收站中将再也查询不到对象的信息，真实数据也最终会被作为垃圾回收。

### 操作步骤

1. `sys` 租户或用户租户的租户管理员登录到数据库。

   #### 说明

      - MySQL 租户的管理员用户为 `root` 用户，Oracle 租户的管理员用户为 `SYS` 用户。
      - 如果需要清理租户回收站对象，则需要使用 `sys` 租户登录数据库。  

   连接示例如下，连接数据库时请以实际环境为准。

   ```shell
   obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A

   ```

   有关更加详细的连接数据库的操作指引，参见 [连接数据库概述（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682520) 和 [连接数据库概述（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682578)。
 2. 执行 `SHOW RECYCLEBIN` 语句，获取回收站中对象的名称。

   ```shell
   obclient [(none)]> SHOW RECYCLEBIN;
   +-------------------------------------+-------------------+----------+----------------------------+
   | OBJECT_NAME                         | ORIGINAL_NAME     | TYPE     | CREATETIME                 |
   +-------------------------------------+-------------------+----------+----------------------------+
   | RECYCLE_$_100017_1672050541224936   | oracle001         | TENANT   | 2023-01-16 11:01:40.258000 |
   | __recycle_$_100017_1673426335319344 | __idx_500788_idx1 | INDEX    | 2023-01-11 16:38:55.318878 |
   | __recycle_$_100017_1673426335331800 | t1                | TABLE    | 2023-01-11 16:38:55.331481 |
   | __recycle_$_100017_1673854707660504 | infotest          | DATABASE | 2023-01-16 15:38:27.660436 |
   +-------------------------------------+-------------------+----------+----------------------------+
   4 rows in set

   ```
 3. 根据业务需要，选择合适的场景，清理回收站。

      - 将租户从回收站中彻底清除

       将租户从回收站中彻底清除时，租户下的所有对象也会一并被清除。仅 `sys` 租户支持清理租户回收站对象。

       语句如下：

       ```shell
       obclient [(none)]> PURGE TENANT tenant_name;

       ```

       其中，`tenant_name` 表示回收站中的名称，也可以使用原始名称。使用原始名称时，如果回收站中当前有相同的多个原始名称，则清除的是最早进入回收站中的租户。

       示例如下：

       ```shell
       obclient [(none)]> PURGE TENANT oracle001;

       obclient [(none)]> PURGE TENANT RECYCLE_$_100017_1672050541224936;

       ```
      - 从回收站中物理清理指定的数据库

       仅 `sys` 租户和 MySQL 用户租户支持清理回收站中的数据库对象。

       ```sql
       obclient> PURGE DATABASE object_name;

       ```

       `object_name` 表示该 Schema 对象在回收站中的名称。不支持使用原始名称。

       示例如下：

       ```shell
       obclient [(none)]> PURGE DATABASE __recycle_$_100017_1673854707660504;

       ```
      - 从回收站中物理清理指定的表

       ```sql
       obclient> PURGE TABLE object_name;

       ```

       `object_name` 表示该 Schema 对象在回收站中的名称，也可以使用原始名称。使用原始名称时，如果回收站中当前有相同的多个原始名称，则清除的是最早进入回收站中的表。

       示例如下：

       ```shell
       obclient [(none)]> PURGE TABLE __recycle_$_100017_1673426335331800;

       ```
      - 从回收站中物理清理指定的索引表

       ```sql
       obclient> PURGE INDEX object_name;

       ```

       示例如下：

       ```shell
       obclient [(none)]> PURGE INDEX __recycle_$_100017_1673426335319344;

       ```
      - 将所有对象从回收站中彻底清除

       ```shell
       obclient [(none)]> PURGE RECYCLEBIN;

       ```
 4. 命令执行成功后，可以再次执行 `SHOW RECYCLEBIN` 语句，确认回收站中的对象是否成功清理。

   ```shell
   obclient [(none)]> SHOW RECYCLEBIN;

   ```

## 自动清理回收站

OceanBase 数据库当前支持通过集群级配置项 `recyclebin_object_expire_time` 自动清理收站中过期的 Schema 对象，其默认值为 0s。其中：

- 值为 `0s` 时，表示关闭自动 Purge 回收站功能。
 - 值为非 `0s` 时，表示 Purge 一段时间前进入回收站的对象。

有关集群级配置项 `recyclebin_object_expire_time` 的更多信息，请参见 [recyclebin_object_expire_time](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685530)。

1. 使用 `root` 用户登录数据库的 `sys` 租户。

   ```

   有关更加详细的连接数据库的操作指引，请参见 [连接数据库](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682520)。
 2. 执行以下语句，查看回收站的自动清理策略。

   ```sql
   obclient [(none)]> SHOW PARAMETERS LIKE 'recyclebin_object_expire_time';

   ```

   查询结果如下：

   ```shell
   +-------+----------+----------------+----------+-------------------------------+-----------+-------+--------------------------------------------------------------------------------------------------+--------------+---------+---------+-------------------+---------------+-----------+
   | zone  | svr_type | svr_ip         | svr_port | name                          | data_type | value | info                                                                                             | section      | scope   | source  | edit_level        | default_value | isdefault |
   +-------+----------+----------------+----------+-------------------------------+-----------+-------+--------------------------------------------------------------------------------------------------+--------------+---------+---------+-------------------+---------------+-----------+
   | zone1 | observer | 172.xx.xxx.xxx |     2882 | recyclebin_object_expire_time | TIME      | 0s    | recyclebin object expire time, default 0 that means auto purge recyclebin off. Range: [0s, +∞)   | ROOT_SERVICE | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | 0s            |         1 |
   +-------+----------+----------------+----------+-------------------------------+-----------+-------+--------------------------------------------------------------------------------------------------+--------------+---------+---------+-------------------+---------------+-----------+
   1 row in set

   ```
 3. 执行以下语句，开启自动清理回收站的功能并指定清理多少时间前进入回收站的对象。

   开启自动清理回收站功能，并回收 7 天前进入回收站的 Schema 对象，示例语句如下：

   ```shell
   obclient [(none)]>  ALTER SYSTEM SET recyclebin_object_expire_time = '7d';

   ```
 4. （可选）完成后，可以执行以下语句，确认回收站中符合条件的对象是否被清理。

   ```

## 相关文档

更多回收站相关的内容，请参见以下信息：

- [回收站概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682328)
 - [开启或关闭回收站](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682331)
 - [查看回收站对象](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682332)
 - [恢复回收站对象](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682330)

 上一篇 下一篇 ![有帮助](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) 咨询热线
