---
title: 如何修改 data 盘的占用大小-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何修改 data 盘的占用大小相关的常见问题和使用技巧，帮助您快速解决如何修改 data 盘的占用大小的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 如何修改 data 盘的占用大小

更新时间：2026-06-16 09:21

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：How-to  

本文介绍了修改 `/data` 盘的占用大小的方式。

## 背景信息

您可以通过以下 2 个系统参数来实现修改 `/data` 盘的占用大小。

- `datafile_size`：用于设置数据文件的大小，可进行动态调整，不需要重启，但是只能调大，不能调小。如果想要缩减 `datafile_size`，可以将这个节点从集群中删除，重建这个节点。
 - `datafile_disk_percentage`：表示占用 data_dir 所在磁盘总空间的百分比。`datafile_disk_percentage`可以动态调整，不需要重启，但是只能调大，不能调小。

## 调大 data 盘的占用大小

调大配置项 `datafile_size` 或 `datafile_disk_percentage`。

- 调大 `datafile_size` 的大小，该参数用于指定 `/data/1/block_file` 文件的大小。

  ```unknow
  obclient> ALTER SYSTEM SET datafile_size = '200G';

  ```
 - 保持 `datafile_size` 默认值为 0，调大 `datafile_disk_percentage` 的大小。

  ```unknow
  obclient> ALTER SYSTEM SET datafile_disk_percentage = 93;

  ```

  #### 说明

  如果 `datafile_size` 大于 0， 那么系统忽略 `datafile_disk_percentage` 的设置。有关配置项 `datafile_size` 与 `datafile_disk_percentage` 的说明，参见 OceanBase 数据库《参考指南》中 **系统配置项** 的说明。

## 调小 data 盘的占用大小

1. 停止 observer 进程。

   ```sql
   obclient> ALTER SYSTEM STOP SERVER 'X.X.X.X:2882';

   ```

   ```shell
   [admin@hostname ~]$  kill -9 $observer_pid

   ```
 2. 删除 `/data/1/block_file`，同时需要删除 ilog、clog、slog 文件夹内的所有文件。特别地，对于 V2.X 版本，同样需要删除 clog_shm 和 ilog_shm 文件。

   ```shell
   [admin@hostname ~]$ rm -rf /data1/block_file
   [admin@hostname ~]$ rm -rf /home/admin/oceanbase/store/<cluster_name>/ilog
   [admin@hostname ~]$ rm -rf /home/admin/oceanbase/store/<cluster_name>/clog
   [admin@hostname ~]$ rm -rf /home/admin/oceanbase/store/<cluster_name>/slog
   [admin@hostname ~]$ rm -rf /home/admin/oceanbase/store/<cluster_name>/clog_shm
   [admin@hostname ~]$ rm -rf /home/admin/oceanbase/store/<cluster_name>/ilog_shm

   ```

   #### 注意

   删除数据有风险，删除前建议先进行备份。
 3. 启动 observer 进程。

   ```shell
   [admin@hostname ~]$ cd /home/admin/oceanbase
   [admin@hostname oceanbase]$ ./bin/observer -o datafile_size=200G

   ```

   此时 `/data` 盘的使用空间将按照设定值进行保留。

   #### 注意

   以上操作需要在每台服务器上逐一进行，以 1-1-1 集群为例，操作 1 台服务器后，需要等待服务器状态为 active，并且 `start_service_time` 不为 0，然后才能再次进行其他服务器的操作。
 4. 在下一台服务器重复步骤 2 ~ 步骤 4。

Previous

[单个分区的宏块数限制说明](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209897)

Next

[OceanBase 数据库 V4.2 数据文件按需扩展](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000366660) ![有帮助](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) 咨询热线
