---
title: 如何开启数据副本自动切主-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何开启数据副本自动切主相关的常见问题和使用技巧，帮助您快速解决如何开启数据副本自动切主的难题。
---
切换语言

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

划线反馈

# 如何开启数据副本自动切主

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

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

本文主要介绍开启数据副本自动切主。

## 适用版本

OceanBase 数据库所有版本。

## 配置方法

`enable_auto_leader_switch` 用于设置是否开启数据副本自动切主，默认为 True，表示开启数据副本自动切主。

OceanBase 数据库中，租户、数据库、表组和表的都有 Primary Zone 的概念，同一个分区的数据副本分布在多个 Zone 里，其中分区的主副本所在的 Zone 称为 Primary Zone。

将 `enable_auto_leader_switch` 设置为 True 后，可以通过 `ALTER TENANT SET primary_zone=<zone_name>` 将租户的主副本切换到其他 Zone 的节点。其中 `zone_name` 表示要切换到的 Zone 名称。

有关该配置项的详细信息，请参见 OceanBase 数据库《参考指南》的 **系统配置项** 章节。

```unknow
obclient> ALTER TENANT SET primary_zone='<zone_name>';

```

在性能测试过程中，为了避免切主会选择关闭 `enable_auto_leader_switch`，来保证不会有切主的动作影响性能。

```unknow
obclient> ALTER SYSTEM SET enable_auto_leader_switch='False';

```

在进行多轮性能测试的过程中，需要使用 TRUNCATE TABLE 清理数据。如果关闭了自动切主，可能会导致 TRUNCATE TABLE 后主副本不均衡。因此在测试过程中，需要关注主副本是否在每台 OBServer 上保持均衡；如果不均衡，则需要将 `enable_auto_leader_switch` 设置为 True，等待同步完成后再设置为 False。

可以通过以下 SQL 检查主副本是否保持均衡，如果各 Zone 中主副本的数量（即 count 列）的数值差不大于 1，则说明当前主副本保持均衡。

```unknow
obclient> SELECT count(*) svr_ip,svr_port,zone FROM __all_virtual_meta_table WHERE role=1 AND tenant_id=<tenant_id> GROUP BY svr_ip ORDER BY ZONE;

```

上一篇

[如何手动执行切主](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000439447)

下一篇

[如何诊断 OceanBase 数据库切主原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207768) ![有帮助](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) 咨询热线
