---
title: "为租户开启仲裁服务 - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: 为租户开启仲裁服务 功能适用性 该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持仲裁服务功能。 您可以在创建租户时即为租户开启仲裁服务，如果未开启，也可以待租户创建成功后，为租户开启仲裁服务。本节主要介绍如何为已有租户开启仲裁服务。 前提条件 请确认当前集群中已部署仲裁服务，…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.1.0

# 为租户开启仲裁服务

更新时间：2023-09-27 20:10:52

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/600.manage/400.high-availability/400.arbitration-high-availability/200.enable-the-arbitration-service.md)

#### 功能适用性

该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持仲裁服务功能。

您可以在创建租户时即为租户开启仲裁服务，如果未开启，也可以待租户创建成功后，为租户开启仲裁服务。本节主要介绍如何为已有租户开启仲裁服务。

## 前提条件

- 请确认当前集群中已部署仲裁服务，部署仲裁服务的详细操作，请参见 [部署两副本加仲裁服务的 OceanBase 集群](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000021063) 中的 **步骤四：启动、添加仲裁服务**。
 - 开启仲裁服务前，需要确认待开启仲裁服务的租户的 Locality 为 2F 或 4F ，当前仅支持 Locality 为 2F 或 4F 的租户开启仲裁服务。

## 操作步骤

1. 使用 `root` 用户登录到集群的 `sys` 租户。

   连接示例如下，连接数据库时请以实际环境为准。

   ```shell
   obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A

   ```

   有关更加详细的连接数据库的操作指引，参见 [连接数据库概述（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001698766) 和 [连接数据库概述（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001692927)。
 2. 执行以下命令，查看租户的仲裁服务状态。

   示例如下：

   ```shell
   obclient [oceanbase]> SELECT * FROM DBA_OB_TENANTS WHERE tenant_name = 'oracle001'\G
   *************************** 1. row ***************************
                    TENANT_ID: 1004
                  TENANT_NAME: oracle001
                  TENANT_TYPE: USER
                  CREATE_TIME: 2023-02-06 13:38:27.626314
                  MODIFY_TIME: 2023-02-06 13:38:45.005930
                 PRIMARY_ZONE: zone1
                     LOCALITY: FULL{1}@zone1
            PREVIOUS_LOCALITY: NULL
           COMPATIBILITY_MODE: ORACLE
                       STATUS: NORMAL
                IN_RECYCLEBIN: NO
                       LOCKED: NO
                  TENANT_ROLE: PRIMARY
            SWITCHOVER_STATUS: NORMAL
             SWITCHOVER_EPOCH: 0
                     SYNC_SCN: 1677665769026296752
               REPLAYABLE_SCN: 1677665769026296752
                 READABLE_SCN: 1677665768858323118
           RECOVERY_UNTIL_SCN: 4611686018427387903
                     LOG_MODE: NOARCHIVELOG
   ARBITRATION_SERVICE_STATUS: DISABLED
   1 row in set

   ```

   租户的仲裁服务主要有以下几种状态：

      - `ENABLED`：表示租户已开启仲裁服务。
      - `DISABLED`：表示租户已关闭仲裁服务。
      - `ENABLING`：表示租户正在开启仲裁服务。
      - `DISABLING`：表示租户正在关闭仲裁服务。

   根据查询结果可知，`ARBITRATION_SERVICE_STATUS` 列为 `DISABLED`，表示该租户已关闭仲裁服务。

   有关 `DBA_OB_TENANTS` 视图的更多介绍，请参见 [DBA_OB_TENANTS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001700895)。
 3. 执行以下命令，为租户开启仲裁服务。

   语句如下：

   ```sql
   ALTER TENANT tenant_name [SET] ENABLE_ARBITRATION_SERVICE = true;

   ```

   其中，`tenant_name` 为待开启仲裁服务的租户名；`SET` 关键字为可选。

   为租户 `oracle001` 开启仲裁服务的示例如下：

   ```shell
   obclient [oceanbase]> ALTER TENANT oracle001 ENABLE_ARBITRATION_SERVICE = true;
   Query OK, 0 rows affected

   ```
 4. 命令执行成功后，再次查询 `oceanbase.DBA_OB_TENANTS` 视图来确认租户的仲裁服务是否已开启。

   示例如下：

   ```shell
   obclient [oceanbase]> SELECT * FROM DBA_OB_TENANTS WHERE tenant_name = 'oracle001'\G
   *************************** 1. row ***************************
                    TENANT_ID: 1004
                  TENANT_NAME: oracle001
                  TENANT_TYPE: USER
                  CREATE_TIME: 2023-02-06 13:38:27.626314
                  MODIFY_TIME: 2023-02-06 13:38:45.005930
                 PRIMARY_ZONE: zone1
                     LOCALITY: FULL{1}@zone1
            PREVIOUS_LOCALITY: NULL
           COMPATIBILITY_MODE: ORACLE
                       STATUS: NORMAL
                IN_RECYCLEBIN: NO
                       LOCKED: NO
                  TENANT_ROLE: PRIMARY
            SWITCHOVER_STATUS: NORMAL
             SWITCHOVER_EPOCH: 0
                     SYNC_SCN: 1677665769026296752
               REPLAYABLE_SCN: 1677665769026296752
                 READABLE_SCN: 1677665768858323118
           RECOVERY_UNTIL_SCN: 4611686018427387903
                     LOG_MODE: NOARCHIVELOG
   ARBITRATION_SERVICE_STATUS: ENABLED
   1 row in set

   ```

   根据查询结果可知，`ARBITRATION_SERVICE_STATUS` 列为 `ENABLED`，表示该租户已开启仲裁服务。
 5. 成功开启仲裁服务后，租户依然可能存在缺少仲裁成员的日志流，这种日志流无法正常执行升降级操作，您可以通过如下流程进行确认。

   租户的仲裁服务开启成功表示该租户在开启时刻已创建的日志流均可以使用仲裁服务，但开启仲裁服务后新创建的日志流可能缺少仲裁成员，这是因为创建日志流是非严格模式执行的，不能保证仲裁成员一定会创建成功，故针对该场景，可以通过以下语句确认该租户的所有日志流是否都有仲裁成员。

   语句如下：

   ```sql
   (SELECT distinct ls_id FROM GV$OB_LOG_STAT WHERE tenant_id = tenantid) EXCEPT
   (SELECT ls_id FROM GV$OB_LOG_STAT WHERE tenant_id = tenantid AND role = 'LEADER' AND arbitration_member = 'arb_server_ip:arb_server_port');

   ```

   相关参数说明如下：

      - `tenantid`：表示开启仲裁服务的租户的租户 ID。
      - `arb_server_ip`：表示仲裁服务的 IP。
      - `arb_server_port`：表示仲裁服务的 RPC 端口，默认为 2882。

   示例如下：

   ```shell
   obclient [oceanbase]> (SELECT distinct ls_id FROM GV$OB_LOG_STAT WHERE tenant_id = 1004) EXCEPT
   (SELECT ls_id FROM GV$OB_LOG_STAT where tenant_id = 1004 and role = 'LEADER' and arbitration_member = '100.xx.xx.xx:2882');
   Empty set

   ```

   有关 `GV$OB_LOG_STAT` 视图字段的详细介绍，请参见 [GV$OB_LOG_STAT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001700856)。

   如果查询结果为空，则表示所有日志流都有仲裁成员，仲裁服务可用；如果查询结果不为空，此时 Root Service 会在后台为这些日志流补仲裁成员，您可以通过 `CDB_OB_LS_ARB_REPLICA_TASKS` 视图进一步确认是否有正在执行补仲裁成员的任务，如果确认补仲裁成员的任务存在且正在执行，需要等待任务执行完成。

   待补仲裁成员的任务执行完成后，您可以查询 `CDB_OB_LS_ARB_REPLICA_TASK_HISTORY` 视图确认任务的执行结果，如果任务执行成功，则表示日志流补仲裁成员成功，仲裁服务可用；如果任务执行失败，需要联系技术支持人员协助处理。

## 相关文档

更多仲裁服务相关的操作，请参见以下信息：

- [部署两副本加仲裁服务的 OceanBase 集群](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000021063)
 - [为租户关闭仲裁服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001698745)
 - [修改日志流降级控制时间](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001698746)
 - [为集群替换仲裁服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001698747)
 - [为集群删除仲裁服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001698748)

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