---
title: 通过 clog 日志判断事务的最终状态是提交或回滚-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于通过 clog 日志判断事务的最终状态是提交或回滚相关的常见问题和使用技巧，帮助您快速解决通过 clog 日志判断事务的最终状态是提交或回滚的难题。
---
切换语言

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

划线反馈

# 通过 clog 日志判断事务的最终状态是提交或回滚

更新时间：2026-06-12 03:56

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

clog 是事务日志，记录了事务的 redo log 以及事务的状态。本文讲述如何使用 ob_admin 的 log tool 来分析 clog 日志，判断事务的最终状态是提交还是回滚。

## 适用版本

OceanBase 数据库 V4.x 版本。

## ob_admin clog 命令

使用 ob_admin 打印 clog 日志的命令如下。

```
ob_admin log_tool dump_filter '<filter_name>' <clog_file_name>

```

- `clog_file_name` 为指定 clog 文件名。`clog_file_name` 可以包含文件路径。
 - `filter_name` 的取值如下：

  | 过滤条件名称 | 说明 |
  | --- | --- |
  | `tablet_id` | 数据表标识符 |
  | `tx_id` | 事务标识符 |

  `filter_name` 可以单独使用，也可以组合使用。过滤多个条件时，条件名称需要用英文分号（;）隔开。

例如，使用以下命令来打印 101 号 clog 中 `tablet_id=123` 并且 `tx_id=26058724` 的日志。

```
ob_admin log_tool dump_filter 'tablet_id=123;tx_id=26058724' 101

```

## 事务相关的日志记录

### 事务执行时日志记录

在事务执行过程中，如果需要对事务的修改进行持久化，则相应事务将产生日志记录并对其进行持久化，这类日志记录称之为事务执行时日志记录。 事务执行时日志记录的类型如下所示。

| 日志类型 | 内部类型值 | 说明 |
| --- | --- | --- |
| `OB_LOG_MUTATOR` | 0x200 | 事务的 mutator 日志，包含事务的修改内容。 |
| `OB_LOG_TRANS_STATE` | 0x400 | 事务的状态日志。 |
| `OB_LOG_MUTATOR_WITH_STAT` | 0x600 | 事务的状态日志，携带 mutator 日志。 |
| `OB_LOG_MUTATOR_ABORT` | 0x800 | 事务的 abort 日志，用于标记该事务已回滚。 |

### 事务提交时日志记录

事务进入到提交阶段后，需要对事务的修改进行持久化。在该阶段，根据事务的不同类型，将产生不同类型的事务日志记录。

- 本地单分区事务的提交时日志记录的类型如下所示。

  | 日志类型 | 内部类型值 | 说明 |
  | --- | --- | --- |
  | `OB_LOG_SP_TRANS_REDO` | 0x20 | 单分区事务的 redo 日志，包含事务的修改内容（redo 日志）。 |
  | `OB_LOG_SP_TRANS_COMMIT` | 0x40 | 单分区事务的 commit 日志，标记该事务已提交，包含事务的修改内容（redo 日志）。 |
  | `OB_LOG_SP_TRANS_ABORT` | 0x80 | 单分区事务的 abort 日志，标记该事务已回滚。 |
 - 分布式事务的提交时日志记录的类型如下所示。

  | 日志类型 | 内部类型值 | 说明 |
  | --- | --- | --- |
  | `OB_LOG_TRANS_REDO` | 0x1 | 分布式事务的 redo 日志，包含事务的修改内容（redo 日志）。 |
  | `OB_LOG_TRANS_PREPARE` | 0x2 | 分布式事务的 prepare 日志。 |
  | `OB_LOG_TRANS_REDO_WITH_PREPARE` | 0x3 | 分布式事务的 prepare 日志，包含事务的修改内容（redo 日志）。 |
  | `OB_LOG_TRANS_COMMIT` | 0x4 | 分布式事务的 commit 日志，标记该事务已提交。 |
  | `OB_LOG_TRANS_ABORT` | 0x8 | 分布式事务的 abort 日志，标记该事务已回滚。 |
  | `OB_LOG_TRANS_CLEAR` | 0x10 | 分布式事务的 clear 日志，用于释放事务上下文信息。 |

上一篇

[OceanBase 数据库两阶段提交过程中未决事务的处理](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000155)

下一篇

[事务参与者数量过多导致事务悬挂和性能抖动](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000048153) ![有帮助](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) 咨询热线
