---
title: 如何路由到只读型副本查询数据-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 如何路由到只读型副本查询数据相关的常见问题和使用技巧，帮助您快速解决 如何路由到只读型副本查询数据的难题。
---
切换语言

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

划线反馈

# 如何路由到只读型副本查询数据

更新时间：2025-05-21 03:36

适用版本： V4.0.x、V4.1.x、V4.2.x、V4.3.x 内容类型：How-to  

## 问题现象

每天有一部分数据统计 SQL 需要执行，这部分 SQL 对数据的一致性要求不高。由于 SQL 质量不可控，希望通过路由到只读型副本执行。

## 解决方法

### 方式一：LDC 路由，如果只读的 SQL 是单独通过一个应用发送的可以在单独部署一个 OBProxy 关联集群，只读应用连接这个 OBProxy

通过要设置为弱一致性读的 OBProxy 连接到数据库，执行如下命令进行修改。

```shell
alter proxyconfig set obproxy_read_consistency=1;

```

该配置项取值为 0 和 1，默认为 0，表示强读 1 表示弱读。

```shell
## OBProxy 会将弱读请求路由到同 idc 的 z1
alter system modify zone "z1" set region = "region1";
alter system modify zone "z1" set idc = "idc1";
alter system modify zone "z2" set region = "region1";
alter system modify zone "z2" set idc = "idc2";
alter proxyconfig set proxy_idc_name='idc1';
## 执行测试语句
select * from T1；

```

### 方式二：修改 SQL，加上弱一致性读的 Hint 或者修改变量

- 设置弱读。

  ```shell
  set global ob_read_consistency='weak'

  ```
 - 设置 `proxy_route_policy` 路由参数。

  ```shell
  ## 空为随机读
  alter proxyconfig set proxy_route_policy='';

  ```
 - 添加 Hint 方式。

  ```shell
  select /* +READ_CONSISTENCY(WEAK)*/ * from t1;

  ```
 - 修改变量方式。

  ```shell
  set global ob_read_consistency='weak';

  ```

  #### 说明

  `proxy_route_policy` 参数值。

     - `FOLLOWER_FIRST`：优先读从副本。
     - `FOLLOWER_ONLY`：只读从副本，从副本都失败则报错。
     - `UNMERGE_FOLLOWER_FIRST`：优先读没合并的从副本。

## 适用版本

OceanBase 数据库 V4.x 版本。

上一篇

[SQL 执行报错 unexpected STRING_VALUE ret=-5001](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209986)

下一篇

[MySQL 租户 SQL 执行报错误：-4016 内部错误](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210000) ![有帮助](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) 咨询热线
