---
title: "切主 | OceanBase 文档中心"
description: 切主 OceanBase 数据库可以打开自动切主参数，在节点宕机后可正常提供服务；也可以通过 stop server 或者修改 primary_zone list 实现切换主副本。 场景描述 OceanBase 中由分区的主（leader）提供对外读写服务，非弱一致性读的 SQL 都在主上执行。当主副本所在机器有问题…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.2 企业版

# 切主

更新时间：2026-05-25 17:18:12

OceanBase 数据库可以打开自动切主参数，在节点宕机后可正常提供服务；也可以通过 `stop server` 或者修改 primary_zone list 实现切换主副本。

## 场景描述

OceanBase 中由分区的主（leader）提供对外读写服务，非弱一致性读的 SQL 都在主上执行。当主副本所在机器有问题时，应用可能出现短暂报错，此时可尝试将主副本切到其它机器，来保证正常提供服务。

## 业务影响

主副本切到其它机房后 SQL 将通过 proxy 跨机房访问主，SQL RT 会增加，每条 SQL 大概增加数毫秒，具体抖动幅度视具体环境情况而定。

## 操作步骤

### 保留日志

1. 保留 OBServer 服务相关日志。

   目录：`/home/admin/oceanbase/log`
 2. 如果发生 core，保留 core 文件。

   目录：`/data/1/` （core 文件存储放在数据文件目录下）

### 具体操作

1. 检查自动切主参数 `enable_auto_leader_switch` 。

   该参数值若为 `TRUE`，则已打开自动切主，无需进行任何操作，等待 OceanBase 集群自动切主即可；该参数值若为 `FALSE`，则执行第二步。
 2. 执行以下 SQL 语句，停掉当前故障主机，此后 OceanBase 数据库会自行切主到正常运行的服务器上。

   ```sql
   obclient> ALTER system stop server '$server_ip$:2882';

   ```

   > **说明**
   >
   >  
   >
   > 语句中的`$server_ip$`需要替换为对应机器 IP。
 3. 或者通过修改 primary_zone list 实现切主。SQL参考如下：

   ```shell
   obclient> ALTER TENANT tenant_name PRIMARY_ZONE 'zone_name';

   ```

### 验证步骤

登录集群 sys 租户，查询主副本分布情况：

```sql
obclient> SELECT count(1),svr_ip FROM __all_meta_table WHERE  role=1 group by svr_ip order by 1 desc;

```

查看对应 IP 已经没有主副本。

同时检查关闭当前服务后，应用是否持续报错。

 上一篇 下一篇 ![有帮助](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) 咨询热线
