---
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 01:56

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

本文主要介绍 OceanBase 数据库副本管理的相关原理。

## 适用版本

OceanBase 数据库所有版本。

## 副本管理

OceanBase 数据库中，副本被划分成多种类型，包括全功能型副本、日志型副本、只读型副本等，并引入 Locality 概念。Locality 用于描述一个租户或者一个表的副本包含哪些类型，以及它们位于集群中的哪些 Zone 或 Region 中。

副本分布的管理需求来自机器故障与负载均衡两个方面。负载均衡会主动改变副本的分布，机器故障会被动改变副本分布。副本管理包括负载均衡、副本创建、副本下线与回收、增补临时下线副本、增补永久下线副本与增补被回收副本。

## 负载均衡

负载均衡分为机器、分区两种粒度。

- 机器负载均衡是指 OceanBase 数据库会将一些 Unit 从负载高的机器迁移到负载低的机器上。
 - 分区负载均衡是指 OceanBase 数据库会将分区从负载高的 Unit 搬迁副本到负载低的 Unit 上。

## 副本创建

副本创建采用静态 Round-Robin 策略，尽可能让创建的副本均匀分布到各个 Zone 与 Zone 内各个 Unit 中。其中，Zone 的 Round-Robin 策略仅仅针对 Region 的 Locality。

## 副本下线与回收

- 当机器和 Root Server 之间无心跳时间小于 `lease_time` 时，该机器被认为是正常状态。
 - 当机器和 Root Server之间无心跳时间大于 `lease_time`，小于 `server_permanent_offline_timeout` 时，该机器被认为是临时下线状态。
 - 当机器和 Root Server之间无心跳时间超过 `server_permanent_offline_timeout` 时，该机器会被标记为永久下线状态。

  其中，`lease_time` 用于配置心跳租约时长，默认为 10s，取值范围为 1s ~ 5 min。`server_permanent_offline_time`用于设置节点心跳中断的时间阈值，默认为 3600s，即 1 小时，取值范围为 [20s,+∞)。有关以上配置项的详细信息，请参见《OceanBase 数据库 参考指南》中的 **系统** **配置项** 章节。

## 增补临时下线副本

临时下线机器不影响集群正常工作，无需立即对副本进行特殊处理，但如果因为机器临时下线导致集群进入"危急状态"，则 OceanBase 数据库会做一些紧急处理以保障集群可靠性。例如，3 全功能副本 3 机器配置（即 1-1-1 集群），有 2 台机器宕机，则需要立即进行副本复制，否则再宕机 1 台服务器，数据就会丢失。

由于机器是临时下线，下线的副本还记录在内部表中，只需要在下线副本所在 Zone 中另找一台机器，然后进行一次副本迁移，就能复制一个新副本，防止数据丢失。例如，对于 2-2-2 集群，某个 Zone 中临时下线一台机器，此时 OceanBase 数据库会将副本迁移到该 Zone 的另一台机器上。

## 增补永久下线副本

从机器永久下线到副本被回收之间还有很长一段时间，这段时间里，机器负载均衡模块被激活。机器负载均衡模块发现有机器处于永久下线状态，就会将其上的 Unit 全部迁移到其它正常的机器上。

#### 注意

此时 OceanBase 数据库仅迁移 Unit 资源，并不涉及到真正耗时的 unit 内副本的迁移。

此时，OceanBase 数据库会更新 `__all_unit` 表中 Unit 的 `server` 列。随后，复制模块会检测到副本当前所在 OBServer 和 Unit 所在 OBServer 不一致，就会触发迁移任务，把副本迁移到 Unit 所在 OBServer 上。

## 增补被回收副本

如果在机器永久下线后一段时间内，永久下线副本没来得及被复制到同 Zone 的其它 OBServer 上，则副本可能被回收，内部表中相应的副本条目被删除。这时，内部表记录的副本数量少于 schema 记录的副本数量，并且无法直接知晓少哪些副本。为补足副本，OceanBase 数据库会进入副本复制流程，通过对比下线副本所在的 OBServer、下线副本所在的 Zone、副本类型、上线副本所在机器等信息，得出需要复制的副本。

上一篇

[删租户卡住如何排查](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000900223)

下一篇

[两地三中心五副本环境 leader 分区均衡规则](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207764) ![有帮助](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) 咨询热线
