---
title: 如何配置读写分离集群-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何配置读写分离集群相关的常见问题和使用技巧，帮助您快速解决如何配置读写分离集群的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 如何配置读写分离集群

更新时间：2026-06-04 01:56

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：How-to  

本文介绍在不配置只读副本的情况下，如何通过 OBProxy 的 LDC 属性配置 OceanBase 数据库的读写分离集群。

## 适用版本

OceanBase 数据库所有版本

本文档适用于 2-2-2 及以上配置的集群。

## 配置读写分离集群

本文中，`xxx.xxx.xx.xx1`、`xxx.xxx.xx.xx2` 为 `zone1` 中的两台 OBServer，`xxx.xxx.xx.xx3`、`xxx.xxx.xx.xx4` 为 `zone2` 中的两台 OBServer，`xxx.xxx.xx.xx5`、`xxx.xxx.xx.xx6` 为 `zone3` 中的两台 OBServer。

本文以在 `zone3` 的会话层开启弱读，实现基于非 Primary Zone 副本的读写分离实现。

1. 首先查看 OceanBase 数据库非 Primary Zone 的 IDC 属性。

   其中 `name` 为 `idc` 的行的 `info` 列即为各 Zone 的 IDC 属性。

   ```unknow
   obclient> SELECT svr_ip,zone FROM __all_server ORDER BY zone;
   +----------------+-------+
   | svr_ip         | zone  |
   +----------------+-------+
   | xxx.xxx.xx.xx1 | zone1 |
   | xxx.xxx.xx.xx2 | zone1 |
   | xxx.xxx.xx.xx3 | zone2 |
   | xxx.xxx.xx.xx4 | zone2 |
   | xxx.xxx.xx.xx5 | zone3 |
   | xxx.xxx.xx.xx6 | zone3 |
   +----------------+-------+

   obclient> SELECT * FROM __all_zone WHERE name='idc';
   +----------------------------+----------------------------+-------+------+-------+------+
   | gmt_create                 | gmt_modified               | zone  | name | value | info |
   +----------------------------+----------------------------+-------+------+-------+------+
   | 2020-09-16 16:36:54.226819 | 2020-09-16 16:56:34.488518 | zone1 | idc  |     0 | c3   |
   | 2020-09-16 16:36:54.228121 | 2020-09-16 16:56:34.599247 | zone2 | idc  |     0 | c4   |
   | 2020-09-16 16:36:54.229390 | 2020-09-16 16:56:34.713054 | zone3 | idc  |     0 | c6   |
   +----------------------------+----------------------------+-------+------+-------+------+
   3 rows in set (0.012 sec)

   ```
 2. 配置 OBPROXY 的 LDC 设置。需要在每个 OBProxy 的节点配置。

   配置 `xxx.xxx.xx.xx5` 与 `xxx.xxx.xx.xx6` 的 OBProxy，将 IDC 名称设置为 `c6`。

   ```unknow
   obclient -hxxx.xxx.xx.xx5  -P2883 -u<username>@<tenantname>#<clustername> -p<passwd>
   obclient> ALTER PROXYCONFIG SET proxy_idc_name='c6';
   obclient -hxxx.xxx.xx.xx6  -P2883 -u<username>@<tenantname>#<clustername> -p<passwd>
   obclient> ALTER PROXYCONFIG SET proxy_idc_name='c6';

   ```
 3. 登录 OceanBase 数据库，设置会话变量为弱一致性读。

   ```unknow
   obclient -hxxx.xxx.xx.xx6  -P2883 -u<username>@<tenantname>#<clustername> -p<passwd>
   obclient> SET @@ob_read_consistency='weak';

   ```

Previous

[max_allowed_packet 与 SQL 长度的关系](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210013)

Next

[OBServer 出现 force_disconnect 告警的触发逻辑和原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000298688) ![有帮助](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) 咨询热线
