---
title: "使用 obd 部署主备租户 | OceanBase 文档中心"
description: 使用 obd 部署主备租户 本文分为三种场景介绍如何使用 obd 快速部署主备租户。 说明 obd 目前仅支持基于网络的主备租户部署，且仅支持为 MySQL 模式租户创建备租户。 概念介绍 物理备库是 OceanBase 数据库高可用解决方案的重要组成部分，可以为用户的关键应用提供高可用、数据保护、灾难恢复等重要特性…
---
切换语言

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

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

# 使用 obd 部署主备租户

更新时间：2026-04-14 17:55:42

[编辑](https://github.com/oceanbase/obd-doc/edit/V3.2.0/zh-CN/400.user-guide/300.command-line-operations/300.manage-cluster/800.physical-standby-database/100.deploy-physical-standby-database.md)  

本文分为三种场景介绍如何使用 obd 快速部署主备租户。

#### 说明

obd 目前仅支持基于网络的主备租户部署，且仅支持为 MySQL 模式租户创建备租户。

## 概念介绍

物理备库是 OceanBase 数据库高可用解决方案的重要组成部分，可以为用户的关键应用提供高可用、数据保护、灾难恢复等重要特性。

物理备库作为 OceanBase 生产数据库的准实时热备份，当主库出现计划内或计划外（多数派副本故障）的不可用情况时，备库可以接管服务，并且提供无损切换（RPO = 0）和有损切换（RPO > 0）两种容灾能力，最大限度降低服务停机时间，减少可能带来的数据损失。详细介绍可参见官网《OceanBase 数据库》文档 [管理数据库/高可用/物理备库容灾](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013080) 章节内容。

## 前提条件

- 主租户和备租户所在集群均已创建，OceanBase 数据库所用版本相同且为 V4.2.0 及以上版本。
 - 主租户需是用户租户，且具备全量的日志。

  执行 `SELECT LS_ID, BEGIN_LSN FROM oceanbase.GV$OB_LOG_STAT WHERE ROLE = 'LEADER' ;` 命令查看，`BEGIN_LSN` 值为 0 表示当前日志流副本拥有自创建以来的完整日志。
 - 主租户所在集群需保证在运行状态。

  可执行 `obd cluster display` 命令查看集群状态。
 - 简单体验时主租户资源最少为 1C2GB 内存、4GB 日志磁盘，长期使用建议主租户资源为 1C4GB 内存及以上。

## 场景一：一主一备

一主一备的部署模式简单概括即为：存在 clusterA、clusterB 两个集群，并且 clusterA 集群中创建了用户租户 A_a（主租户），在 clusterB 集群中创建 A_a 租户的备租户（B_a），操作步骤如下。

1. 执行如下命令为 A_a 租户创建备租户 B_a

   ```shell
   obd cluster tenant create-standby clusterB clusterA A_a -t B_a --tenant-root-password=*****

   ```
 2. 执行如下命令查看备租户的主备关系

   ```shell
   obd cluster tenant show clusterB -g

   ```

   `-g` 参数可以展示与集群相关的主备图形信息，输出如下所示：

   ```shell
   +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                                     tenant base info                                                                                    |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops            | min_iops            | log_disk_size | iops_weight | tenant_role |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   | sys         | SYS         | MYSQL              | RANDOM       | 1.0     | 1.0     | 2.0G        | 9223372036854775807 | 9223372036854775807 | 2.0G          | 1           | PRIMARY     |
   | B_a         | USER        | MYSQL              | RANDOM       | 2.0     | 2.0     | 4.0G        | 10000               | 10000               | 5.0G          | 2           | STANDBY     |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                   standby tenant standby info                                                                   |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp         | err_code | error_comment | switchover_status | switchover_epoch | log_mode     |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   | B_a                 | NORMAL        | NORMAL      | 2023-09-14 08:58:44.173462 | 0        |               | NORMAL            | 0                | NOARCHIVELOG |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                                   standby tenant`s primary info                                                                                   |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | standby_tenant_name | primary_tenant_info                                                                                                                                                         |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | B_a                 | IP_LIST=10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881,USER=standbyro@A_a,PASSWORD=******,TENANT_ID=1002,CLUSTER_ID=1694680744,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=false |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   query primary-standby relation ok

   primary-standby relation topology graph

   clusterA:A_a
   └── clusterB:B_a

   ```

   输出中 `tenant_status` 和 `sync_status` 值均为 `NORMAL` 时即表示备租户创建成功，且日志传输正常。输出中各个模块内容介绍如下。

      - **tenant base info**：该表展示集群中的租户信息。您需关注的有如下几项。

       | 列名 | 说明 |
       | --- | --- |
       | tenant_name | 租户名称。 |
       | tenant_type | 租户类型，分为 sys 租户（SYS）和用户租户（USER）。 |
       | compatibility_mode | 租户的兼容模式，分为 MySQL 模式兼容和 Oracle 模式兼容，社区版仅支持 MySQL 模式兼容。 |
       | primary_zone | 租户的主 Zone。 |
       | tenant_role | 租户角色，有主租户（PRIMARY）和备租户（STANDBY）两种角色。 |
      - **standby tenant standby info**：该表展示集群中备租户的具体信息，您需关注如下几项。

       | 列名 | 说明 |
       | --- | --- |
       | standby_tenant_name | 备租户的租户名称。 |
       | tenant_status | 备租户的租户状态，该值为 `NORMAL` 时表示备租户状态正常。 |
       | sync_status | 备租户的日志同步状态，该值为 `NORMAL` 时表示日志同步状态正常。 |
       | sync_scn_timestamp | 日志同步位点。 |
       | err_code | 日志同步错误代码。 |
       | error_comment | 日志同步错误信息。 |
       | switchover_status | 主备租户切换状态，该值为 `NORMAL` 时表示主备租户切换状态正常。 |
       | switchover_epoch | 主备租户切换时间。 |
       | log_mode | 日志类型，基于网络的主备租户日志类型均为 `NOARCHIVELOG`。 |
      - **standby tenant`s primary info**：该表展示集群中备租户的主租户信息，您需关注如下几项。

       | 列名 | 说明 |
       | --- | --- |
       | standby_tenant_name | 备租户的租户名，方便展示主租户信息归属于哪一个备租户。 |
       | primary_tenant_info | 备租户所属的主租户信息，包括主租户所在集群的节点 IP、主租户的租户名、standburo 用户的密码、主租户 ID 和主租户所在集群 ID 等。 |
 3. 分别连接主备租户，修改主租户（A_a）中信息，查看备租户（B_a）中是否同步更新。

## 场景二：一主两备

一主两备的部署模式简单概括即为：存在 clusterA、clusterB、clusterC 三个集群，并且 clusterA 集群中创建了用户租户 A_a（主租户），需在 clusterB 和 clusterC 集群中创建 A_a 租户的备租户（B_a 和 C_a），操作步骤如下所示。

   ```
 2. 重复执行创建命令为 A_a 租户创建备租户 C_a

   ```shell
   obd cluster tenant create-standby clusterC clusterA A_a -t C_a --tenant-root-password=*****

   ```
 3. 执行如下命令查看备租户的主备关系，此处以查看 clusterB 集群为例

   ```

   ```shell
   +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                                     tenant base info                                                                                    |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops            | min_iops            | log_disk_size | iops_weight | tenant_role |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   | sys         | SYS         | MYSQL              | RANDOM       | 1.0     | 1.0     | 2.0G        | 9223372036854775807 | 9223372036854775807 | 2.0G          | 1           | PRIMARY     |
   | B_a         | USER        | MYSQL              | RANDOM       | 2.0     | 2.0     | 4.0G        | 10000               | 10000               | 5.0G          | 2           | STANDBY     |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                   standby tenant standby info                                                                   |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp         | err_code | error_comment | switchover_status | switchover_epoch | log_mode     |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   | B_a                 | NORMAL        | NORMAL      | 2023-09-14 09:12:13.819821 | 0        |               | NORMAL            | 0                | NOARCHIVELOG |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                                   standby tenant`s primary info                                                                                   |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | standby_tenant_name | primary_tenant_info                                                                                                                                                         |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | B_a                 | IP_LIST=10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881,USER=standbyro@A_a,PASSWORD=******,TENANT_ID=1002,CLUSTER_ID=1694680744,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=false |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   query primary-standby relation ok

   clusterA:A_a
   ├── clusterB:B_a
   └── clusterC:C_a

   ```

   输出中 `tenant_status` 和 `sync_status` 值均为 `NORMAL` 时即表示备租户创建成功，且日志传输正常。输出中各个模块内容介绍可参见上文 **场景一：一主一备**。
 4. 分别连接主备租户，修改主租户（A_a）中信息，查看备租户（B_a、C_a）中是否同步更新。

## 场景三：级联主备

级联备租户的部署模式简单概况即为：存在 clusterA、clusterB、clusterC 三个集群，并且 clusterA 集群中创建了用户租户 A_a（主租户），先在 clusterB 集群中创建 A_a 租户的备租户（B_a），之后在 clusterC 集群中创建 B_a 租户的备租户（C_a），操作步骤如下所示。

   ```
 2. 执行如下命令查看 B_a 租户是否创建完成

   ```

   输出中 tenant_status 和 sync_status 值均为 NORMAL 时即表示备租户创建成功，且日志传输正常。输出中各个模块内容介绍可参见上文 **场景一：一主一备**。

   ```
 3. 重复执行创建命令为 B_a 租户创建备租户 C_a

   #### 说明

   建议等 B_a 租户完成同步后再创建 C_a 租户。

   ```shell
   obd cluster tenant create-standby clusterC clusterB B_a -t C_a --tenant-root-password=*****

   ```
 4. 执行如下命令查看备租户的主备关系，此处以查看 clusterB 集群为例

   ```

   ```shell
   +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                                     tenant base info                                                                                    |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops            | min_iops            | log_disk_size | iops_weight | tenant_role |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   | sys         | SYS         | MYSQL              | RANDOM       | 1.0     | 1.0     | 2.0G        | 9223372036854775807 | 9223372036854775807 | 2.0G          | 1           | PRIMARY     |
   | B_a         | USER        | MYSQL              | RANDOM       | 2.0     | 2.0     | 4.0G        | 10000               | 10000               | 5.0G          | 2           | STANDBY     |
   +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+
   +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                   standby tenant standby info                                                                   |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   | standby_tenant_name | tenant_status | sync_status | sync_scn_timestamp         | err_code | error_comment | switchover_status | switchover_epoch | log_mode     |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   | B_a                 | NORMAL        | NORMAL      | 2023-09-14 09:24:48.737141 | 0        |               | NORMAL            | 0                | NOARCHIVELOG |
   +---------------------+---------------+-------------+----------------------------+----------+---------------+-------------------+------------------+--------------+
   +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   |                                                                                   standby tenant`s primary info                                                                                   |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | standby_tenant_name | primary_tenant_info                                                                                                                                                         |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | B_a                 | IP_LIST=10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881,USER=standbyro@A_a,PASSWORD=******,TENANT_ID=1002,CLUSTER_ID=1694680744,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=false |
   +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   query primary-standby relation ok

   clusterA:A_a
   └── clusterB:B_a
       └── clusterC:C_a

   ```
 5. 分别连接主备租户，修改主租户（A_a）中信息，查看备租户（B_a）以及备租户的备租户（C_a）中是否同步更新。

## 常见问题

### 创建备租户时报错 primary cluster have not full log xxx

**可能原因**：主租户不具备全量的日志。

基于网络的主备同步依赖主租户具备全量的日志，所以执行备租户创建命令时，obd 会先检查主租户日志流的 BEGIN_LSN 值是否为 0，BEGIN_LSN 值为 0 表示当前日志流副本拥有自创建以来完整的日志；当 BEGIN_LSN 值不为 0 时，obd 无法创建基于网络同步的备租户。

**解决办法**：您可登录主租户执行如下命令查询主租户的日志流 BEGIN_LSN 值是否为 0。

```sql
SELECT LS_ID, BEGIN_LSN FROM oceanbase.GV$OB_LOG_STAT WHERE ROLE = 'LEADER' ;

```

若主租户的日志流 BEGIN_LSN 值不为 0，表明主租户不具备全量的日志，您无法使用 obd 为该主租户创建备租户，您可参见 OceanBase 数据库文档 [创建备租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000033892) 一章通过 SQL 命令为该主租户创建备租户。

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