---
title: 如何查看 clog 同步延迟？-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何查看 clog 同步延迟？相关的常见问题和使用技巧，帮助您快速解决如何查看 clog 同步延迟？的难题。
---
切换语言

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

划线反馈

# 如何查看 clog 同步延迟？

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

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

本文讲述如何查看多副本之间的 clog 同步状态以及排查 clog 同步问题的过程。

## 适用版本

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

## 操作步骤

在 OceanBase 数据库中，Leader 副本的 clog 提交会主动进行多数派的同步，Follower 副本也会定期（每隔 4s）检查与 Leader 副本的同步差异。 ​

1. 执行以下 SQL 从 `__all_virtual_clog_stat` 表中查看 Follower 副本与 Leader 副本 的 clog 同步延迟。

   ```shell
   obclient> select svr_ip,role,last_log_id,accu_log_count,accu_log_delay,is_in_sync,is_need_rebuild,next_replay_ts_delta
   from __all_virtual_clog_stat
   where table_id=1099511627971 and partition_idx=14;

   ```

   如果 clog 落后太多，会触发 rebuild 操作来追平。​
 2. 在 Follower 节点的 `observer.log` 里查找关键词 `fetch_window_size` 来判断 clog 拉取的效率。

   ```
   grep "fetch_window_size" observer.log | grep

   ```

   ```
   [2022-07-21 13:46:38.430465] INFO  [CLOG] ob_log_sliding_window.cpp:3830 [44125][1252][Y0-0000000000000000] [lt=25] [dc=0] fetch_log_from_leader_or_parent(ret=0, partition_key_={tid:1114904790616166, partition_id:0, part_cnt:0}, dst_server="xx.xx.xx.xx:2882", dst_cluster_id=1648285935, fetch_log_execute_type=2, fetch_type=2, start_id=44908120, end_id=44908248, is_fetched=true, sw_start_id=44908119, max_log_id=44908119, next_ilog_id=44908120, next_ilog_ts=1658339241199193, leader="xx.xx.xx.xx:2882", parent={server:"xx.xx.xx.xx:2882", cluster_id:1648285935}, replica_type=0, last_fetched_max_log_id=44908247, fetch_log_interval=4000000,  fetch_window_size=128)

   ```

   `fetch_window_size` 是每次 fetch 日志的窗口大小。如果窗口过小，可能是因为 Follower 节点存在写瓶颈，或者 Leader 节点存在读瓶颈。 ​
 3. 在 Leader 节点的 `observer.log` 里查找关键词 `clog_hite_rate` 来判断 clog 读取的效率。

   ```
   grep "clog_hite_rate" observer.log

   ```

   ```
   [2022-07-21 13:34:27.509987] INFO  [CLOG] ob_log_direct_reader.cpp:269 [90088][1190][Y0-0000000000000000] [lt=20] [dc=0] clog cache hit rate(dir_name="/home/admin/oceanbase/store/xxx_prod/clog", hit_count=294804, miss_count=75258, total_count=370062, hit_rate=7.966340775329538993e-01)

   ```

   Leader 节点上的 clog 读取是从 clog cache 获取，clog cache 的命中率在 90% 以上才能提供较好的读取效率。如果命中率太小，可以适当调大 `cache_wash_threshold` 提升 cache 命中率，加速拉取日志。 ​
 4. 在 `observer.log` 里查找关键词 `cost too much time` 来判断 clog 写入是否存在性能问题。

   ```
   grep "cost too much time" observer.log | grep "writer"

   ```

   ```
   [2022-07-22 02:00:31.259481] WARN  [CLOG] finish_timer (ob_log_timer_utility.h:37) [90084][0][Y0-0000000000000000] [lt=12] [dc=0] cost too much time(file="/home/admin/214_20220214173718768_255307427_code/rpm_workspace/src/clog/ob_clog_file_writer.cpp", line=710, time=15109)

   ```

   这个 WARN 表示写 clog 耗时过长，红色时间单位为 us，如果这个 WARN 很频繁，表示日志盘性能可能有问题。 ​
 5. 通过 `tsar --io -I <日志盘>` 命令来观察日志盘的读写效率。

   ```
   Time           ----------------------------------------nvme0n1-----------------------------------------
   Time            rrqms   wrqms      rs      ws   rsecs   wsecs  rqsize  qusize   await   svctm    util
   28/07/22-02:25   0.00    0.00    0.97   72.34    3.89  457.62    6.30    0.00    0.02    0.02    0.11
   28/07/22-02:30   0.00    0.00    0.97   69.31    3.89  420.03    6.03    0.00    0.01    0.01    0.09
   28/07/22-02:35   0.00    0.00    0.97   71.81    3.89  449.63    6.23    0.00    0.01    0.01    0.10

   ```

   主库可以观测 rs 判断读请求量，备库可以观测 ws 判断写请求量。 ​
 6. 观测网络情况。

   如连通性、延时、吞吐量、丢包率、重传率、连接数等等，判断网络是否正常。

上一篇

[如何观察 OBServer 重启后 clog 回放进度](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207766)

下一篇

[OCP 日志告警 clog 滑动窗口超时报错](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207761) ![有帮助](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) 咨询热线
