---
title: OceanBase 数据库切主强制停止正在进行的事务的原因及规避方法-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库切主强制停止正在进行的事务的原因及规避方法相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库切主强制停止正在进行的事务的原因及规避方法的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# OceanBase 数据库切主强制停止正在进行的事务的原因及规避方法

更新时间：2026-06-10 09:51

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

OceanBase 数据库切主时可能会强制停止正在进行的事务。本文介绍了停止事务的原因以及规避的方法。

## 适用版本

OceanBase 数据库 V2.X、V3.X 版本

## 触发切主的场景

OceanBase 数据库中，会触发切主的场景包括：

- RootService 的常规切主服务：包括修改 Primary Zone、轮转升级、副本搬迁、执行 `STOP SERVER` 与 `STOP ZONE` 命令导致的切主。
 - clog 模块触发的切主：clog 滑动窗口超时导致 Leader 卸任，其触发场景如 clog 写入超时、网络抖动丢包、clog 回放挂起、日志空间满等。

发生切主时，OceanBase 数据库会首先停止在 partition 的写入，之后 50 ms 等待 active 事务结束。在这之后的 100 ms 内，OceanBase 数据库会尝试把未完成的事务通过 clog 持久化到新的主所在的 Leader 上。100 ms 后，如果还有事务未完成持久化，这些事务会被强制停止。

切主时停止正在执行的事务的原因如下：

- 对于 clog 模块主动卸任 Leader 的场景，会导致无法进行活动事务迁移的动作，事务会被强制停止。
 - 活动大事务在活动事务迁移过程中，由于 clog 量大，导致 100 ms 内无法完成迁移，这些事务只能回滚。
 - Leader 改选之前开启的事务，并且在改选发生时还没有执行结束的，并且未进入两阶段提交的事务会被强制停止。

## 规避方法

1. 关闭负载均衡相关的切主行为，相关的配置项包括 `enable_rebalance`、`enable_merge_by_turn`、`enable_auto_leader_switch`。

      - `enable_rebalance` 用于设置是否开启自动负载均衡的功能，默认为 true，表示开启。
      - `enable_merge_by_turn` 用于设置是否开启轮转合并策略，默认为 true，表示开启。
      - `enable_auto_leader_switch` 用于设置是否开启自动切主，默认为 true，表示开启。

       ```unknow
       obclient> ALTER SYSTEM SET enable_rebalance=FALSE;
       obclient> ALTER SYSTEM SET enable_merge_by_turn enable_merge_by_turn=FALSE;
       obclient> ALTER SYSTEM SET enable_auto_leader_switch=FALSE;

       ```
 2. 关闭 clog 日志同步失败导致的切主行为，相关的配置项为`_ob_clog_timeout_to_force_switch_leader`。

   `_ob_clog_timeout_to_force_switch_leader` 用于当日志同步被阻塞时，设置最长等待时间，超过该时间值之后废除原主。默认为 10s，取值范围为 [0,60m]，设置为 0 时表示关闭 clog 日志同步失败导致的切主动作。

   ```unknow
   obclient> ALTER SYSTEM SET _ob_clog_timeout_to_force_switch_leader=0;

   ```
 3. 控制单个事务的 clog 大小，控制大事务的使用。有关大事务的详细信息，请参见 [如何检查大查询整体情况](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000001008)。
 4. 在业务层增加重连尝试的机制。

上一篇

[如何查看 OceanBase 数据库事务层的整体耗时？](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000167)

下一篇

[悬挂事务与长事务](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000001003) ![有帮助](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) 咨询热线
