---
title: OceanBase clog 满盘的应急处理-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase clog 满盘的应急处理相关的常见问题和使用技巧，帮助您快速解决OceanBase clog 满盘的应急处理的难题。
---
切换语言

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

划线反馈

# OceanBase clog 满盘的应急处理

更新时间：2026-06-12 04:01

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

在 OCP 管控的 OBServer 集群中收到 `clog disk is almost full` 的告警。`observer.log` 中报错 `clog disk is almost full`。该告警和报错不可忽略，需要运维操作保证 clog 不至于达到 `clog_disk_usage_limit_percentage` （默认值 95%）进而导致 clog 无法写入，事务无法提交的严重影响。

本文档介绍该场景下可采取的应急措施。

## 可能原因

- 运维问题

  Clog 盘所在空间被其他用户的文件占用，导致可以利用的空间不足。请保证 Clog 所在的目录空间没有其他文件进行存放导致 Clog 反而不能写入的极端故障情况。
 - 转储持续失败

  转储持续失败是 Clog 满盘最常见的原因，当 Clog 中涉及的分区数据已经全部转储到 SSTable 中，且 partition 的元信息已经持久化宕机重启起始位点时，Clog 文件就可以进行回收。所以，如果转储不成功，宕机重启 Clog 起始回放位点不推进，Clog 文件是无法进行回收的。

     - 在 OBServer V2.x 以及之前版本，为了方便解释，将转储过程分为三个阶段：转储前、转储中和转储后。其中，各个阶段需要完成的工作如下：转储前：冻结成功、转储成功调度；转储中：转储线程读取 memtable 中目标数据，并将其 dump 到磁盘；转储后：汇报转储信息到内部表、分区 Meta 内存数据结构，释放 frozen memstore 的内存。在各个阶段中可能会出现的导致转储失败的原因有：

      | 转储阶段 | 转储不成功的原因 | 影响和排查手段 |
      | --- | --- | --- |
      | 转储前 | schema 被 drop 的分区不参与转储 | schema 不存在的分区不参与转储，依赖 GC 进行删除，一旦 GC 线程异常，该分区本机的 CLOG 日志无法进行回收。 |
      | 转储前 | 转储调度依赖转储位点之前的事务都已经结束 | 一旦某个转储位点之前的事务异常，持续不结束，转储无法调度，存在 CLOG 盘爆的风险。这类问题是导致 CLOG 盘爆的高频原因事务异常场景较多，抽象概括起来，主要包括：        - 无主：事务涉及到的参与者只要有任何一个无主，都会影响事务的推进。     - 内存爆：内存爆问题严重程度仅次于无主，爆掉的机器，无法接受新的日志，影响事务执行、提交。     - XA：XA 事务 prepare 之后，没有收到客户端发来的 commit 或者 rollback 命令，导致事务悬挂。     - IO 异常：比如 IO hang 住，备机无法接受日志，事务状态无法回放，备机事务结束不了，转储卡住。     - 落后副本 rebuild 失败：目前对于现有的各个版本，备机数据落后之后，触发 rebuild 由于源端数据落后，rebuild 失败，之后的重试逻辑没有切换源端的机制。导致副本数据持续落后，转储卡住，clog 盘爆。 |
      | 转储中 | 转储动作正常进行，但能力有限。 | - 转储跟不上写入，大概率导致内存爆，进而影响 CLOG 日志回收。     - 内外部业务多次出现转储线程卡住，导致内存爆，进而 clog 盘爆。     - 备机内存规格小于 leader。 |
      | 转储后 | 转储之后释放 frozen memstore 需要依赖 schema | 释放 fronzen memstore 过程中，需要确保分区的所有 table store 都已经转储完成，这里包括主表和索引表。索引表的 check 需要依赖 schema 的信息，如果此时本地没有获取到 schema，这里的检查会持续失败。最终导致转储后 frozen memstore 无法释放，分区 Meta 上宕机重启起始位点无法推进。 |
     - 在 OBServer V3.x 上，OceanBase 提高了对大事务场景的支持，能够做到转储未提交事务。理论上由于转储持续失败导致 clog 不停增长直至满盘的极端情况会有大幅改善。

           - OBServer 事务一阶段 CLOG 的优化导致 Clog 回收依赖全局位点，在生产环境中我们不推荐打开事务一阶段优化。
           - 日志副本副本 Clog 回收位点需要依赖成员列表中多数派全能型副本已经确认的 LogID。这样的特性意味着如果存在全能型副本和日志副本混布的情况，如果全能型副本出现无主的情况，日志副本如果持续有 Clog 写入，有可能会导致会 Clog 无法回收爆盘的情况。在生产环境中不建议混部（混合部署）全能型副本和日志副本。

## 应急操作

Clog 空间问题会导致 OBServer 停写，进而影响到业务服务。在出现该故障场景时，可以参考以下方式及时处理空间问题，保证业务快速恢复服务。

1. 确认 OceanBase 集群状态，如，集群登录失败、observer inactive 等。
 2. 确认 Clog 目录空间的使用情况，通过 `observer.log` 日志报错以及磁盘实际使用情况来共同确定。

      - 确认 `observer.log`，Clog disk 空间报错信息，使用率超过设置阀值，如 95%。

   ```shell
   grep 'clog disk is almost full' observer.log

   ```

      - 确认 OBServer Clog 目录使用情况，查看 Clog 目录下是全是由于 Clog 占满，如果是运维错误操作导致 Clog 目录下有大量其他文件占用，请合理维护和清理确保 Clog 目录下的空间由 Clog 占用。如果确实是 Clog 的占用已经接近了 Clog disk 空间阈值 95%，需要进一步通过下面的步骤缓解 Clog 使用情况。

   ```shell
   df -h /data/log1

   ```
 3. 如果 OBServer 集群可以登录，临时调整 Clog 的可用空间阀值。

      - 登录 sys 租户，增加 Clog 可用百分比（i.e. clog_disk_usage_limit_percentage），如 95 到 98。

   ```shell
   alter system set clog_disk_usage_limit_percentage=98;

   ```

      - 如果上述方法未能缓解大量的 Clog 增长问题，在 observer 进程运行过程中，移走 Clog 文件，保证 clog 目录使用空间低于阀值，操作 clog 挪动作需要联系 OceanBase 技术支持处理。

   ```shell
   mv /data/log1//clog/<最老的clog文件> <临时保存 clog 文件目录>

   ```
 4. 如果 OBServer 集群无法登录，通过以下方式临时调整 Clog 的可用空间阀值。

      - 增加 Clog 可用百分比，如 95 到 98

   ```shell
   (admin) /home/admin/oceanbase/bin/ob_admin -h 'ip'  -p 2882   set_server_config   clog_disk_usage_limit_percentage=98

   ```

   ```shell
   mv /data/log1//clog/<最老的 clog 文件> <临时保存 clog 文件目录>

   ```
 5. 如果 observer 进程已经结束

      - 手动拉起 OBServer，启动参数设置 Clog 可用百分比 98。

   ```shell
   (admin) /home/admin/oceanbase/bin/observer -o clog_disk_usage_limit_percentage=98

   ```

      - 等待 observer 启动提供服务之后，如果仍未能缓解大量的 Clog 空间增长问题，在 OBServer 进程运行过程中，移走 Clog 文件，保证 clog 目录使用空间低于阀值 ，操作 clog 挪动作需要联系 OceanBase 技术支持处理。

   ```
 6. 观察 OBServer 状态直到自动恢复。
 7. 保存 `observer.log` 联系 OceanBase 技术支持检查 Clog 清理问题。

## 适用版本

OceanBase 数据库 V2.x、V3.x 版本。

上一篇

[大事务引起 clog 盘满处理](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209957)

下一篇

[OceanBase 数据库事务触发同步 CLOG 时机梳理](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209954) ![有帮助](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) 咨询热线
