---
title: "读写分离 | OceanBase 文档中心"
description: 读写分离 OceanBase 数据库支持读写分离部署，要求客户端将写请求路由到 ReadWrite Zone，将弱一致性读请求路由到ReadOnly Zone，此功能强依赖 OBProxy 的 LDC 功能。 读写分离的部署需要进行以下 4 个步骤： OceanBase 集群的 LDC 配置。 OBProxy 的 L…
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 4.0.0 社区版

# 读写分离

更新时间：2026-06-17 14:52:18

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.0.0/zh-CN/500.administrator-guide/500.database-connection-and-routing/700.route-management/400.odp-routing-policy/100.read-write-splitting-1.md)  

OceanBase 数据库支持读写分离部署，要求客户端将写请求路由到 ReadWrite Zone，将弱一致性读请求路由到ReadOnly Zone，此功能强依赖 OBProxy 的 LDC 功能。

读写分离的部署需要进行以下 4 个步骤：

1. OceanBase 集群的 LDC 配置。
 2. OBProxy 的 LDC 配置。
 3. OBProxy 的集群配置。
 4. 应用配置弱一致性读。

## OceanBase 集群的 LDC 配置

1. 在客户端中使用 root 用户登录集群的 sys 租户。
 2. 执行以下示例语句配置 LDC，其中 `region` 通常设置为城市名（大小写敏感）。 `idc` 代表该 Zone 所处的机房信息，通常设置为机房名（小写），`z1` 为当前设置的 Zone 的名称。它们的关系是一个 OceanBase 集群中有若干个 Region，一个 Region 有若干个 Zone，一个 Zone 对应一个 Zone Type 和 IDC 属性。

   ```sql
   obclient> ALTER SYSTEM MODIFY zone "z1" set region = "SHANGHAI";
   obclient> ALTER SYSTEM MODIFY zone "z1" set zone_type = "ReadWrite";
   obclient> ALTER SYSTEM MODIFY zone "z1" set idc = "zue";

   ```
 3. 检查 OBServer 中 LDC 设置内容是否生效，查询语句如下所示，查看返回结果中对应 Zone 的 Region Zone Type 和 IDC 项的值是否符合您的设置值。

   ```sql
   obclient> SELECT * FROM oceanbase.DBA_OB_ZONES;

   ```

## OBProxy 的 LDC 配置

读写分离部署时，OBProxy 仅需正确设置好 LDC 即可。OBProxy 的 LDC 配置有两种方式，其中 `zue` 为示例机房。

1. OBProxy 进程启动时通过参数指定进行配置（建议使用的方式），示例语句如下所示。

   ```shell
   cd /opt/taobao/install/obproxy-1.5.5
   ./bin/obproxy -o proxy_idc_name=zue

   ```
 2. 在 OceanBase 支持的客户端工具中运行 `ALTER` 语句修改 OBProxy 配置项，示例语句如下所示。

   ```sql
   obclient> ALTER PROXYCONFIG SET proxy_idc_name='zue';

   ```

   以示例 `zue` 机房为例，为 OBProxy 配置 LDC 后，如果应用部署在上海 `zue` 机房，当应用逻辑发起弱一致性读时，请求都是优先发往上海机房。

   为 OBProxy 配置 LDC 后可通过下述语句检查配置是否生效。

   ```sql
   obclient> SHOW PROXYINFO IDC;

   ```

   返回结果如下所示：

   ![返回结果](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/6525858951/p147038.png)

## OceanBase 集群配置

在 OceanBase 数据库支持的客户端中使用 root 用户登录到集群的业务租户，运行下述语句设置 Global 级别系统变量 `ob_route_policy` 为对应取值即可，默认取值为 `readonly_zone_first`。

```sql
obclient> SET @@global.ob_route_policy=readonly_zone_first;

```

## 应用配置弱一致性读

读写分离部署同样仅针对弱一致性读的场景才会生效。应用配置弱一致性读有以下 3 种方法：

- 在 SQL 中携带 Hint 来指定，示例语句如下所示。

  ```sql
  obclient> SELECT /*+read_consistency(weak)*/ * FROM t1;

  ```
 - 设置 Session 级别的系统变量来指定（仅对当前 Session 生效），示例语句如下所示。

  ```sql
  obclient> SET @@ob_read_consistency='weak';

  ```
 - 设置全局级别的系统变量来指定（对该租户的所有连接都会生效），示例语句如下所示。

  ```sql
  obclient> SET @@global.ob_read_consistency='weak';

  ```

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