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

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

划线反馈

# Clog 盘满问题运维处理方法

更新时间：2023-11-14 03:16

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

Clog 磁盘满时 observer 进程会自动停止写 Clog，从而导致机器上有大量副本不同步。本文介绍如何处理 Clog 磁盘满的问题。

## 适用版本

OceanBase 数据库所有版本

## Clog 盘满问题

对于分区数多、写入压力大的数据库集群，如果转储慢、或者租户 Unit 规格异构，那么可能导致部分副本的 Clog 回收不及时，从而导致磁盘空间使用率达到 95%，此时 observer 进程会自动停止写 Clog，从而导致这台机器上有大量副本不同步。

您可以通过在服务器上执行 `df -h` 查看当前 Clog 盘的空间使用占比，如果 `Use%` 列达到了 `clog_disk_usage_limit_percentage` 设置的阈值，则需要进行处理。

```unknow
[root@hostname /]# df -h
...
/dev/mapper/vglog-ob_log       196G   177G  9G  95% /observer/clog
...

```

## 处理方法

`clog_disk_usage_limit_percentage` 用于控制事务日志的磁盘 I/O 最大使用百分比，默认为 95，取值范围为 80 ~ 100。有关该配置项的详细信息，请参见 OceanBase 数据库《参考指南》中的 **系统配置项** 章节。

1. 将 `clog_disk_usage_limit_percentage` 调整为一个较大的值，例如 98，使 observer 可以继续接收 Clog 日志。

   其中 `svr_ip` 表示 Clog 盘超过阈值的 OBServer 的 IP 地址。

   ```unknow
   obclient> ALTER SYSTEM SET clog_disk_usage_limit_percentage=98 server='svr_ip:2882';

   ```
 2. 修改配置项后，落后的副本会立即触发追赶 Clog 日志。如果落后的 Clog 较多，则会触发 Rebuild，从 Leader 副本拷贝数据与 Clog。

   可以重复执行以下命令观察恢复过程，如果 `count(*)` 列在多次执行的结果中呈快速下降趋势，说明 Clog 正在进行同步。

   ```unknow
   obclient> SELECT svr_ip,svr_port,count(*) FROM __all_virtual_clog_stat WHERE is_offline = 0 AND is_in_sync = 0 GROUP BY 1;

   ```

      1. 如果 `count(*)` 列在多次执行的结果中没有呈快速下降趋势，则可能存在触发了 Rebuild 的副本，可以通过以下命令确认触发 Rebuild 副本的数量。

        ```unknow
        obclient> SELECT svr_ip,svr_port,count(*) FROM __all_virtual_partition_migration_status WHERE action != 'END' GROUP BY 1;

        ```
      2. 如果确认存在触发 Rebuild 的副本，则需要继续检查 Rebuild 任务并发相关的配置项。

        ```unknow
        obclient> SHOW PARAMETERS LIKE "%data_copy%";

        ```

        如果 `server_data_copy_in_concurrency` 与 `server_data_copy_out_concurrency` 都是默认值 2，那么将二者均调整为 10，加快多个副本 Rebuild 的并发。

        以上两个配置项分别用于配置单个节点迁入数据与迁出数据的最大并发数，默认为 2，取值范围为 1 ~ 100。有关该配置项的详细信息，请参见 OceanBase 数据库《参考指南》中的 **系统配置项** 章节。

        ```unknow
        obclient> ALTER SYSTEM SET server_data_copy_in_concurrency = 10;
        obclient> ALTER SYSTEM SET server_data_copy_out_concurrency = 10;

        ```
 3. 观察 OBServer 的 Clog 盘空间使用率是否达到了之前设置的 98%。

      - 如果 Clog 盘空间使用率达到了 98%，则说明调整没有恢复成功，请联系 OceanBase 技术支持。
      - 如果 Clog盘空间使用率下降到 95% 以下，说明 observer 恢复成功，继续等待所有副本达到 `sync` 状态即可。

   ```unknow
   [root@hostname /]# df -h

   ```
 4. 重复执行以下语句，直到返回空集，此时所有副本都已同步。

   ```unknow
   obclient> SELECT svr_ip,svr_port,count(*) FROM __all_virtual_clog_stat WHERE is_offline = 0 AND is_in_sync = 0 GROUP BY 1,2;

   ```
 5. 将 `clog_disk_usage_limit_percentage` 修改回默认值。

   其中 `svr_ip` 表示 Clog 盘超过阈值的 OBServer 服务器的 IP 地址。

   ```unknow
   obclient> ALTER SYSTEM SET clog_disk_usage_limit_percentage=95 server='svr_ip:2882';

   ```

上一篇

[OBServer 进程启动后回放 CLOG 时间限制](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002394820)

下一篇

[大事务引起 clog 盘满处理](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209957) ![有帮助](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) 咨询热线
