---
title: "主备租户切主自动路由 - 云平台 OCP V4.3.3 | OceanBase 文档中心"
description: "主备租户切主自动路由 本节为您介绍如何进行主备租户切主自动路由。 应用场景 双机房部署主备租户，使用服务名（Service Name）实现主备切换自动路由，业务无需修改连接串。关于服务名的更多介绍，可参见 管理服务名 。 前提条件 OCP、OceanBase、OBProxy 需同时满足如下版本要求： OCP：[V4.…"
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lJTmRZ61jSUAAAAAAAAAAAAADiGDAQ/original) 云平台 OCPV 4.3.3

# 主备租户切主自动路由

更新时间：2026-04-27 15:35:53

[编辑](https://github.com/oceanbase/ocp-doc/edit/V4.3.3/zh-CN/1850.ocp-om-best-practices/1295.active-standby-switch-automatic-routing.md)  

本节为您介绍如何进行主备租户切主自动路由。

## 应用场景

双机房部署主备租户，使用服务名（Service Name）实现主备切换自动路由，业务无需修改连接串。关于服务名的更多介绍，可参见 [管理服务名](https://www.oceanbase.com/docs/common-ocp-1000000001740041)。

## 前提条件

- OCP、OceanBase、OBProxy 需同时满足如下版本要求：
     - OCP：[V4.3.1, +∞)。
     - OceanBase：[V4.2.1.9, V4.2.2.0)、[V4.2.4.0, V4.3.0.0)、[V4.3.3.0, +∞)。
     - OBProxy：[V4.3.1.0, +∞)。
 - 集群处于 **正常运行** 状态。
 - 切主前主备租户均处于 **正常运行** 状态。

## 技术原理

在 OCP 中为主备租户设置相同的服务名，并使用同一个 OBProxy 分别关联主备租户所属 OceanBase 集群后，OBProxy 将通过 OCP 提供的租户服务名信息自动感知主租户的位置，并将请求路由到主租户。对主备租户进行切换后，业务 Session 可实现自动路由到新主租户。

为实现此能力，业务应用须通过服务名连接到业务数据库，连接串示例如下。

```shell
obclient -h${IP} -P${PORT} -u${USERNAME}@SERVICE:${SERVICE_NAME} -D${DB_NAME}

```

- IP: 同时与主备租户关联的 OBProxy 的 IP 地址或上层 LB 地址。
 - PORT: 同时与主备租户关联的 OBProxy 的 IP 地址或上层 LB 端口。
 - USERNAME: 连接数据库的用户名。
 - SERVICE_NAME: 主备租户共同的服务名。
 - DB_NAME: 业务数据库名。

### 主备租户 Swichover

Switchover 不会修改租户的服务名，业务应用使用 `[用户名]@SERVICE_NAME:[serviceName]` 的方式通过 OBProxy 访问租户，不需要修改连接串。

### 备租户 Failover

执行备租户 Failover 后，OceanBase 会将新主租户的服务名删除，业务无法通过服务名连接新主租户，因此必须修改连接串。为了实现 Failover 后不修改连接串，OCP 进行了功能包装，即在 OCP 上执行 Failover 前选择是否为新主租户设置服务名，此为可选操作。您可选择为新主租户保留原服务名，此时 Failover 后业务可不修改连接串直接访问新主租户。

#### 注意

若选择为新主租户保留原服务名，OBProxy 将自动访问新主租户，此时可能会因为新主租户 RPO != 0 而出现数据不一致的问题。

以下为租户 Failover 不修改连接串的原理示意图。如图所示，租户 B Failover 之后，原主备关系被分成了两个部分，（B、C）和 （A、D、E），其中租户 A、租户 C、租户 D、租户 E 的服务名仍为 ServiceA ，租户 B 的服务名被删除。为了让业务应用不修改连接串，OCP 在 Failover 流程的最后重新将租户 B 的服务名重新置为 ServiceA，并将租户 A、租户 D、租户 E 的服务名置为 **INVALID**。**INVALID** 状态是 OCP 的概念，作用是对 OBProxy 屏蔽该租户的服务名，避免其访问旧主，Config Server（OCP）只会返回服务名状态不为 **INVALID** 的租户。

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/433/serviceA.png)

### 备租户解耦

对 OceanBase 来说，主备租户解耦与备租户 Failover 是同一条指令，但在 OCP 上是两个不同的功能入口。如下图所示的主备关系，原主租户此时处于正常状态，解耦后 OceanBase 只会自动将租户 B 的服务名删除，OCP 同时将租户 C 的服务名删除，避免不属于主备关系的租户拥有同一个服务名。以下为租户解耦的原理示意图。

![2](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/ocp/433/serviceB.png)

## 操作步骤

**步骤一: 配置服务名**

1. 在 [创建租户](https://www.oceanbase.com/docs/common-ocp-1000000001739777) 页面配置服务名。

      1. 进入新建租户页面。
      2. 当租户所属集群及 OBProxy 版本满足要求时，可在 **基本设置** 模块设置租户服务名。
 2. 在 [租户概览](https://www.oceanbase.com/docs/common-ocp-1000000001740034) 页面配置服务名。

      1. 进入租户 **概览** 页面。
      2. 当租户所属集群及 OBProxy 版本满足要求时，可在 **基本信息** 模块为租户添加服务名。

             - 支持同步修改主备租户服务名。
             - 支持对租户服务名进行其它操作，包括 **编辑** 和 **删除**。

**步骤二: 关联 OBProxy 集群**

将主备租户所属的 OceanBase 集群关联至同一个 OBProxy 集群。

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