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

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

划线反馈

# OceanBase 数据库的切主优先级

更新时间：2023-11-14 03:16

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

本文主要介绍 OceanBase 数据库中的切主优先级。

## 适用版本

OceanBase 数据库 V1.4.6 及后续版本

## 引起切主的原因

OceanBase 数据库的切主可能由以下原因引起：

- 发起 Primary Zone 的变更。 这种情况下 RootService 会根据 Primary Zone 的优先级进行切主。
 - 发起 `STOP SERVER` 或 `STOP ZONE` 的操作。

  这种情况下 RootService 会先将对应 Server 和 Zone 上的 Leader 切换到其他的 Server 上。
 - 发起合并。

  发起合并时的切主行为由配置项 `enable_merge_by_turn` 控制，该配置项表示是否开启轮转合并，当该配置为 `TRUE` 时，合并会触发切主。默认为 `FALSE`，表示合并不会触发切主。

  有关该配置项的详细信息，请参见 OceanBase 数据库《参考指南》中的 **系统配置项** 章节。
 - 进行负载均衡操作时会将相关的 Partition 的 Leader 切换到其他节点。

## 切主优先级

在 OceanBase 集群进行版本升级、轮转合并、副本迁移或类型转换等操作时，RootService 会依照若干规则以及优先级，以 Partition Group 为单位进行切主，OceanBase 数据库的切主优先级由高到低排序如下：

- OBServer 是否处于服务状态：处于服务状态的 OBServer 才能够成为切主的目标对象。如果 OBServer 处于非服务状态，不能够成为切主的目标对象。

  通过 `ALTER SYSTEM STOP SERVER` 可以将指定 OBServer 设置为非服务状态，通过 `ALTER SYSTEM STOP ZONE` 可以将指定 Zone 内的全部 OBServer 设置为非服务状态。

  因此，您可以通过将 OBServer 设置为非服务状态的方法将主副本切换到优先级不高的 Zone 中。
 - Primary Region：Primary Zone 所在的 Region 成为 Primary Region，在执行切主时，处于 Primary Region 内的 OBServer 拥有较高的优先级。
 - 轮转合并：RootService 会尝试切换 Leader 处于 Merge 状态的 Zone ，即处于非 Merge 状态的 Zone 具有更高的优先级。

  #### 说明

  Zone 是否处于 Merge 状态由 Zone 的两个属性决定：

     - Zone 的 `is_merging` 为 TRUE。
     - Zone 的 `suspend_merging` 为 FALSE。  

  此时认为 Zone 处于 merge 状态，其他情况 Zone 均不是 merge 状态。
 - Candicate 数量：在下一轮切主中能够成为 Leader 的副本称为 Candidate。下一轮切主中的 Candidate 在本轮中可能是 Leader，也可能是 Follower。以 Partition Group 为单位进行切主，RootService 会统计各个 Zone 内同一个 Partition Group 下 Candidate 的数量，并根据 `candidate number` 的大小决定优先级，`candidate number` 的值较大的 Zone 具有更高的优先级。
 - 手动切主：手动切主的优先级对应 `ALTER SYSTEM SWITCH REPLICA LEADER` 操作，由指定的副本类型确定。

  #### 说明

  `ALTER SYSTEM SWITCH REPLICA` 不会强制切主，该优先级位于以上四个优先级以后。
 - 迁移和类型转换：RootService 会统计不同 Zone 内同一个 Partition Group 中处于迁移和类型转换状态 Replicas 副本数量，处于迁移和类型转换状态的副本数量越少的，优先级越高。
 - Primary Zone：Primary Zone 是 Partition Group 的 Leader 偏好位置，在以上优先级相同的情况下，RootService 会尝试优先将 Leader 切换到 Primary Zone。

上一篇

[OceanBase 数据库 V4.0 版本中无主问题排查手册](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001230454)

下一篇

[SYS 租户下建索引表导致 1 号表无主](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000426101) ![有帮助](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) 咨询热线
