---
title: "角色切换与解耦 - 安装部署工具 OBD V4.5.0 | OceanBase 文档中心"
description: 角色切换与解耦 本文介绍如何使用 obd 动态改变 seekdb 实例角色，以及如何对主备实例解耦。 概念介绍 主备库是 seekdb 提供的高可用方案。主实例（PRIMARY）是用户创建的业务实例，支持完整的数据库服务能力，包括：查询、DML、DDL 等；备实列（STANDBY）则仅提供容灾和只读服务的能力。 ob…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*Qq8pT6yBPTcAAAAAAAAAAAAADiGDAQ/original) 安装部署工具 OBDV 4.5.0

# 角色切换与解耦

更新时间：2026-07-09 15:25:37

[编辑](https://github.com/oceanbase/obd-doc/edit/V4.5.0/zh-CN/400.user-guide/300.command-line-operations/300.manage-cluster/850.physical-standby-seekdb/200.role-switching-seekdb.md)  

本文介绍如何使用 obd 动态改变 seekdb 实例角色，以及如何对主备实例解耦。

## 概念介绍

主备库是 seekdb 提供的高可用方案。主实例（PRIMARY）是用户创建的业务实例，支持完整的数据库服务能力，包括：查询、DML、DDL 等；备实列（STANDBY）则仅提供容灾和只读服务的能力。

obd 支持通过命令动态改变实例角色。

- Switchover

  Switchover 操作是在用户计划内对实例角色进行变更。执行 Switchover 操作后，主实例会与对应的备实例会交换实例角色，整个过程数据不丢失，RPO = 0，执行时间一般为秒级。
 - Failover

  Failover 操作通常是在主实例出现无法恢复的故障时所做的切换行为。执行 Failover 操作后，对应的备实例角色会变换成 PRIMARY。同时，如果对主实例故障前一直正常同步的备实例执行 Failover 操作，则执行 Failover 操作后，一般会产生百毫秒级别的数据损失，执行时间一般为秒级。
 - Decouple

  Decouple 操作是在用户计划内对实例角色进行变更，执行 Decouple 操作后，对应的备实例会和主实例解耦，备实例角色会变换为 PRIMARY。

## Switchover

执行 Switchover 操作后，为保证拓扑关系不变，原主实例下的其他备实例将切换到新主实例下，新主实例下的其他备实例将切换到新备实例下，即仅交换 Switchover 操作的两个主备节点，其他节点的位置保持不变，如下图所示。

![Switchover](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/obd/V2.3.0/zh-CN/400.user-guide/200.role-switching-01.png)

### 前提条件

- seekdb 需为 V1.2.0 或以上版本。
 - 主备实例均由 obd 管理，且为在线状态，可执行 `obd seekdb display` 命令查看实例状态。

### 操作步骤

1. 查看 seekdb 实例的主备关系

   执行如下命令查看 seekdb 实例的主备关系，此处以查看 `seekdb_B` 实例为例。

   ```shell
   obd seekdb display seekdb_B -g

   ```

   `-g` 参数可以展示主备实例拓扑信息，输出如下所示：

   ```shell
   Get local repositories and plugins ok
   Open ssh connection ok
   Connect to seekdb 10.10.10.1:2881 ok
   Wait for seekdb init ok
   +--------------------------------+
   |             seekdb             |
   +---------------+---------+------+
   | ip            | version | port |
   +---------------+---------+------+
   | 10.10.10.1    | 1.2.0.0 | 2881 |
   +---------------+---------+------+
   obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A

   Cluster Topology:

   seekdb_A
   └── seekdb_B
       └── seekdb_C

   ```
 2. 为备实例执行 Switchover 命令

   ```shell
   obd seekdb switchover seekdb_B

   ```
 3. 再次查看原备实例的主备关系

   ```

   `-g` 参数可以展示主备实例拓扑信息，输出如下所示，主备关系拓扑图已更新。

   seekdb_B
   └── seekdb_A
       └── seekdb_C

   ```

## Failover

Failover 操作适用于当前主实例不可用时，可以将备实例切换为主实例继续提供服务。Failover 操作只会对日志文件做修改，不会对数据文件做修改。

#### 注意

在一主多备场景中，通过执行 Failover 操作将一个备实例切换为主实例后，其他的备实例无法切换到新主实例下，您需自行选择解耦或对其他备实例执行 Failover 操作生成新的主实例。

### 前提条件

- seekdb 需为 V1.2.0 或以上版本。
 - 主备实例均由 obd 管理。
 - 主实例为不可用状态，可执行 `obd seekdb display` 命令查看实例状态。
 - 备实例为在线状态，可执行 `obd seekdb display` 命令查看实例状态。

   ```

   ```
 2. 为备实例执行 Failover 命令

   ```shell
   obd seekdb failover seekdb_B

   ```

   seekdb_B
       └── seekdb_C

   ```

## 主备实例解耦

您可执行 decouple 命令将备实例解耦为一个和主实例无关的实例，本节介绍如何执行 decouple 命令进行主备实例解耦。

   ```

   ```
 2. 为备实例执行解耦命令

   ```shell
   obd seekdb decouple seekdb_B

   ```

   ```

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