---
title: "清理 WR 数据 - OceanBase 数据库 V4.2.5 | OceanBase 文档中心"
description: 清理 WR 数据 通过使用 SQL 语句检查 WR 存储占用情况，WR 本身占用内存不多，如果 WR 占用存储太多可以使用 DBMS 包对数据进行删除。 操作步骤 查看 WR 占用的空间。 查看 SSTable 中 WR 占用的空间。 通过 __all_virtual_table 、 __all_virtual_ta…
---
切换语言

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

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

# 清理 WR 数据

更新时间：2026-04-15 17:16:59

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.5/zh-CN/700.reference/1000.performance-tuning-guide/400.performance-diagnosis/450.wr-management/400.clean-up-wr-data.md)  

通过使用 SQL 语句检查 WR 存储占用情况，WR 本身占用内存不多，如果 WR 占用存储太多可以使用 DBMS 包对数据进行删除。

## 操作步骤

1. 查看 WR 占用的空间。

      - 查看 SSTable 中 WR 占用的空间。

       通过 `__all_virtual_table`、`__all_virtual_tablet_meta_table` 和 `__all_virtual_ls_meta_table` 表查看 SSTable 中 WR 占用的空间：

       ```sql
       select sum(b.data_size) from __all_virtual_table a inner join __all_virtual_tablet_meta_table b on a.tenant_id=b.tenant_id and a.tablet_id=b.tablet_id left join __all_virtual_ls_meta_table c on b.tenant_id=c.tenant_id and b.ls_id = c.ls_id and b.svr_ip=c.svr_ip and b.svr_port = c.svr_port where a.table_name like "__wr_%" and a.tablet_id != 0;

       ```

       返回结果如下：

       ```sql
       +------------------+
       | sum(b.data_size) |
       +------------------+
       |          1196806 |
       +------------------+
       1 row in set (0.079 sec)

       ```

       其中 data_size 表示表中存储的数据的总大小，单位为字节。
      - 查看 MemTable 中 WR 占用的空间。

       通过 `__all_virtual_table`、`__all_virtual_memstore_info` 和 `__all_virtual_ls_meta_table` 表查看 SSTable 中 WR 占用的空间：

       ```sql
       select sum(mem_used), sum(hash_mem_used), sum(btree_mem_used) from __all_virtual_table a inner join __all_virtual_memstore_info b on a.tenant_id=b.tenant_id and a.tablet_id=b.tablet_id left join __all_virtual_ls_meta_table c on b.tenant_id=c.tenant_id and b.ls_id = c.ls_id and b.svr_ip=c.svr_ip and b.svr_port = c.svr_port where a.table_name like "__wr%" and a.tablet_id != 0;

       ```

       返回结果如下：

       ```sql
       +---------------+--------------------+---------------------+
       | sum(mem_used) | sum(hash_mem_used) | sum(btree_mem_used) |
       +---------------+--------------------+---------------------+
       |      46137344 |            4207936 |                 352 |
       +---------------+--------------------+---------------------+
       1 row in set (0.087 sec)

       ```

       参数说明：

       | 字段 | 描述 |
       | --- | --- |
       | mem_used | 表在内存中使用的总内存量，单位为字节 |
       | hash_mem_used | 哈希表在内存中使用的总内存量，单位为字节 |
       | btree_mem_used | 树索引在内存中使用的总内存量，单位为字节 |
 2. 清理 WR 占用的空间。 使用 DBMS 包进行清理 WR 占用空间时，清理之后需要执行一次合并。

      1. 首先要查询租户下所有的 SNAP_ID。

        ```sql
        obclient [oceanbase]> select count(1),min(snap_id), max(snap_id) from oceanbase.DBA_WR_SNAPSHOT;

        ```

        返回结果如下：

        ```sql
        +----------+--------------+--------------+
        | count(1) | min(snap_id) | max(snap_id) |
        +----------+--------------+--------------+
        |      230 |           47 |          276 |
        +----------+--------------+--------------+
        1 row in set (0.051 sec)

        ```

        此时查询到系统中 SNAP_ID 的范围为 [47，,276]。
      2. 删除 SNAP_ID 范围内的快照数据，例如删除 SNAP_ID 从 47 到 275 范围内的数据。

        ```sql
        obclient [oceanbase]> CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE('47','275');
        Query OK, 0 rows affected, 4 warnings (4.129 sec)

        ```
      3. 查看 SNAP_ID 是否删除成功。

        ```

        返回结果如下：

        ```sql
         +----------+--------------+--------------+
         | count(1) | min(snap_id) | max(snap_id) |
         +----------+--------------+--------------+
         |        1 |          276 |          276 |
         +----------+--------------+--------------+
         1 row in set (0.043 sec)

        ```

        此时 SNAP_ID 的值为 276，说明删除 SNAP_ID 成功。
 3. 进行合并操作释放空间。有关合并的详细信息，请参见 [合并](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001500543)。

      1. 执行合并操作。

        #### 说明

        不建议在业务高峰期执行手动合并。

        ```sql
        obclient [oceanbase]> ALTER SYSTEM MAJOR FREEZE TENANT = sys;
        Query OK, 0 rows affected (0.049 sec)

        ```
      2. 通过 [`oceanbase.CDB_OB_ZONE_MAJOR_COMPACTION`](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001501180) 视图查看合并操作是否完成，当 `STATUS` 字段的值变为 `IDLE` 时，表示合并完成。

        ```sql
        obclient [oceanbase]> SELECT * FROM oceanbase.CDB_OB_ZONE_MAJOR_COMPACTION where tenant_id = 1;

        ```

        此时 `STATUS` 字段的值为 `COMPACTING` 表示正在合并中。

        ```sql
        +-----------+-------+---------------------+---------------------+----------------------------+----------------------------+------------+
        | TENANT_ID | ZONE  | BROADCAST_SCN       | LAST_SCN            | LAST_FINISH_TIME           | START_TIME                 | STATUS     |
        +-----------+-------+---------------------+---------------------+----------------------------+----------------------------+------------+
        |         1 | zone1 | 1695798402011671173 | 1695751201399410304 | 2023-09-27 02:02:14.339229 | 2023-09-27 15:06:42.095810 | COMPACTING |
        +-----------+-------+---------------------+---------------------+----------------------------+----------------------------+------------+
        1 row in set (0.051 sec)

        ```

        可以稍等 1-2 分钟，等待合并完成。

        ```sql
        +-----------+-------+---------------------+---------------------+----------------------------+----------------------------+--------+
        | TENANT_ID | ZONE  | BROADCAST_SCN       | LAST_SCN            | LAST_FINISH_TIME           | START_TIME                 | STATUS |
        +-----------+-------+---------------------+---------------------+----------------------------+----------------------------+--------+
        |         1 | zone1 | 1695798402011671173 | 1695798402011671173 | 2023-09-27 15:08:36.406838 | 2023-09-27 15:06:42.095810 | IDLE   |
        +-----------+-------+---------------------+---------------------+----------------------------+----------------------------+--------+
        1 row in set (0.043 sec)

        ```
 4. 合并完成后查看清理后的占用空间。

       ```

       返回结果如下，说明在 SSTable 中 WR 占用空间已被释放。

       ```sql
       +------------------+
       | sum(b.data_size) |
       +------------------+
       |           482353 |
       +------------------+
       1 row in set (0.065 sec)

       ```

            - 查看 MemTable 中 WR 占用的空间。

       ```

       返回结果如下，说明在 MemTable 中 WR 占用空间已被释放。

       ```sql
       +---------------+--------------------+---------------------+
       | sum(mem_used) | sum(hash_mem_used) | sum(btree_mem_used) |
       +---------------+--------------------+---------------------+
       |      12582912 |            1053952 |                 128 |
       +---------------+--------------------+---------------------+
       1 row in set (0.076 sec)

       ```

## 相关文档

- [WR 概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001500497)
 - [管理 WR](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001500499)
 - [监测历史会话性能](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001500498)

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