---
title: "备集群读服务 | OceanBase 文档中心"
description: 备集群读服务 本节主要介绍备集群读服务的概念及使用方法。 概述 备集群各个分区的全功能型副本或者只读副本会实时回放 REDO 日志，并且能够承载读服务。OceanBase 数据库支持单分区读和跨分区一致性读，始终保证读取结果是一个快照，从而保证事务的一致性。 由于不同分区以及不同副本的回放进度不同，默认情况下，可能导…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

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

# 备集群读服务

更新时间：2023-08-25 18:30:59

本节主要介绍备集群读服务的概念及使用方法。

## 概述

备集群各个分区的全功能型副本或者只读副本会实时回放 REDO 日志，并且能够承载读服务。OceanBase 数据库支持单分区读和跨分区一致性读，始终保证读取结果是一个快照，从而保证事务的一致性。

由于不同分区以及不同副本的回放进度不同，默认情况下，可能导致先后两次读取的数据版本出现回退的情况。因此，OceanBase 数据库提供了单调读开关。开启单调读开关后，内部会维护租户级别单调递增的可读版本号，每次读取时都会获取全局最新的可读版本号作为快照版本，保证读取的数据越来越新，不会回退。

同时，OceanBase 数据库支持有界旧（Bounded Staleness）一致性读，保证读取的数据不会落后于主集群最新数据的特定时间，默认为 5 秒。如果备集群落后超过阈值，则读操作会重试等待，直到超时或者备集群追上。

## 在用户侧配置备集群的弱一致性读

备集群的普通租户仅支持弱一致性读，如果发起强一致性读、写或者 DDL 操作，则会报错。

可以通过以下两种方式来指定备集群的弱一致性读：

- 登录备集群的普通租户，将 Session 变量 `ob_read_consistency` 的值设置为 `WEAK`

  ```sql
  obclient> SET ob_read_consistency = WEAK;

  ```

  更多 Session 变量 `ob_read_consistency` 的说明信息请参见 [ob_read_consistency](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000354843)。

  > **注意**
  >
  >  
  >
  > 全局系统变量`ob_read_consistency`不能在备集群上设置，只能在主集群上设置。

  该设置仅影响当前 Session，设置后，当前 Session 中后续的读默认都是弱一致性读。
 - 在 SQL 语句中指定 Hint

  如下所示，指定 `WEAK Consistency`，优先级高于 `ob_read_consistency`。

  ```sql
  obclient> SELECT /*+READ_CONSISTENCY(WEAK) */ * FROM t1;

  ```

## 在租户侧配置备集群读服务

在用户侧配置备集群的弱一致性读后，如果需要进一步控制备集群的弱一致性读服务，您还需要在租户侧对备集群的读服务进行配置。

Oceanbase 数据库中主要通过以下两个租户级配置项来控制弱一致性读服务：

- `enable_monotonic_weak_read`：单调读开关，默认为 True。

  更多配置项 `enable_monotonic_weak_read` 的说明信息请参见 [enable_monotonic_weak_read](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000356302)。
 - `max_stale_time_for_weak_consistency`：有界旧一致性读配置项，表示弱一致性读取的数据不会落后于指定时间的数据，默认值为 5 秒。

  更多配置项 `max_stale_time_for_weak_consistency` 的说明信息请参见 [max_stale_time_for_weak_consistency](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000356306)。

设置方法如下：

登录备集群的系统租户，调整特定租户或者所有租户的配置项。

- 为所有租户或者特定租户开启单调读

  ```sql
  obclient> ALTER SYSTEM SET enable_monotonic_weak_read = true TENANT = [ALL|name];

  ```
 - 为所有租户或者特定租户设置有界旧一致性读

  ```sql
  obclient> ALTER SYSTEM SET max_stale_time_for_weak_consistency = '10s' TENANT = [ALL|name];

  ```

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