---
title: "典型 AP 架构部署指南 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 典型 AP 架构部署指南 本文将介绍如何规划与部署 OceanBase 的 AP 能力，涵盖行列混存、单机/分布式拓扑、可读副本类型、路由与容灾策略以及跑批场景下的资源控制，便于在 TP 写为主的前提下合理使用 AP 列存副本与路由策略。 版本与访问路径决策 列存副本（C 副本）的 部署方式 与 读请求如何到达 C …
---
切换语言

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

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

# 典型 AP 架构部署指南

更新时间：2026-06-29 18:17:49

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/620.obap/150.obap-deploy/50.ap-architecture-deployment-guide.md)  

本文将介绍如何规划与部署 OceanBase 的 AP 能力，涵盖行列混存、单机/分布式拓扑、可读副本类型、路由与容灾策略以及跑批场景下的资源控制，便于在 TP 写为主的前提下合理使用 AP 列存副本与路由策略。

## 版本与访问路径决策

列存副本（C 副本）的**部署方式**与**读请求如何到达 C 副本**，与 OceanBase 数据库版本密切相关，请先确认版本再选路径：

| OceanBase 数据库版本 | 部署 C 副本后，使用列存副本的典型方式 |
| --- | --- |
| **V4.6.0 以前** | 通常需要为访问 C 副本 **单独部署 ODP（V4.3.2+）**，并在 ODP 侧配置弱读、`route_target_replica_type`、`proxy_route_policy`、`init_sql`（如 `ob_route_policy = COLUMN_STORE_ONLY`）等，使 AP 流量路由到 C 副本。详见下文 **「V4.6.0 之前：经 ODP 访问 C 副本」** 与 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。 |
| **V4.6.0 及以上** | **无需**为使用列存副本而单独部署一套 ODP 或配置上述 ODP 路由变量。在租户已配置 C 副本的前提下，通过 **V4.6.0 引入的列存副本自动选择**（系统变量 `ap_query_route_policy` 等）控制是否走列存；应用可 **直连 OBServer**，也可继续经已有 ODP 访问，按会话/全局变量生效。详见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。 |

**行列混存表**（无独立 C 副本）的部署与版本无上述 ODP 强制要求，仍以表级存储形态与 `ob_table_access_policy` 等为准。

## 架构总览

OceanBase 的典型 AP 架构可从三个维度理解：

- **行列混存架构**：TP 写为主，AP 可读写分离并搭配列存副本；路由支持自动路由与强制指定（具体方式随版本不同，见上文版本表）。
 - **单机拓扑**：单 Zone 或简单多 Zone 下，F 读（全能副本）支持 TP + AP；C 读（纯列存副本）仅适用于纯 AP。
 - **分布式拓扑**：多 Zone/多机房下，列存副本与路由策略、容灾降级、负载均衡协同；跑批等重负载场景可通过 Resource Manager 做资源控制。

## 行列混存架构

### 读写分离：TP 写为主，AP 列存副本

OceanBase 支持在同一套集群内同时支撑 TP 与 AP 负载，常见两种形态：

- **行列混存表**：同一张表同时具备行存与列存形态，TP 写入走行存，AP 查询可由优化器自动选择行存或列存路径，适合 TP 与 AP 混合、且希望强一致读的分析场景。详见 [OceanBase 表类型与存储形态](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682065)。
 - **列存副本（C 副本）**：在独立 Zone 上部署只读列存副本，TP 写与强读走主/备副本（F 副本），AP 分析走 C 副本以实现 TP/AP 资源物理隔离并节省存储。
     - **V4.6.0 之前**：AP 访问 C 副本通常依赖 **独立 ODP** 与 ODP 侧路由变量，且多为弱读场景。
     - **V4.6.0 及之后**：可通过 **列存副本自动选择** 直连或使用常规连接访问 C 副本，**不要求**为 C 副本单独部署 ODP；读一致性仍可通过 [ob_read_consistency](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685254) 等按版本说明配置。  
       副本与 Locality 的通用说明见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。

### 路由策略：自动路由与强制指定

- **V4.6.0 及之后（含列存副本自动选择）**：在租户已配置 C 副本时，由 `ap_query_route_policy`、`ap_query_cost_threshold`、`ap_query_replica_fallback` 等与优化器行为共同决定是否在列存副本上执行；也可用 Hint 做单条 SQL 控制。详见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。会话级 [ob_route_policy](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685206)。
 - **V4.6.0 之前（经 ODP 访问 C 副本）**：不显式指定时由 ODP 默认策略及 `ob_route_policy` 等决定；访问 C 副本时常通过 ODP 的 `route_target_replica_type`、`proxy_route_policy` 以及 `init_sql` 中设置 `ob_route_policy = 'COLUMN_STORE_ONLY'` 等将 AP 流量导向列存副本。

可读副本类型、ODP 侧路由与容灾降级、负载均衡的详细说明见本文 **列存副本与路由策略（详细）** 一节以及 [ODP 读写分离与路由策略](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683319)。

### 行列混存架构如何部署

- 若采用**仅行列混存表、不部署 C 副本**（TP 与 AP 同库、强一致读），按以下步骤即可完成部署：

     1. **建表时选择行列混存或列存**：通过表属性指定存储形态，由优化器按查询自动选择行存/列存路径。具体语法见 [列存](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683265)。
     2. **（可选）配置访问偏好**：通过系统变量 `ob_table_access_policy`（如 `COLUMN_STORE`、`ROW_STORE`、`AUTO`）指定优先访问行存或列存。
     3. **（可选）跑批与资源隔离**：若有物化视图刷新、大批量导入等重负载，通过 Resource Manager 配置资源组或上限，避免影响在线 TP/AP。查看资源配置信息，参见 [DBA_OB_RSRC_DIRECTIVES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684662)。

  **验证**：对行列混存表执行点查与范围扫描，确认执行计划中的存储格式符合预期。
 - 若采用**TP 写为主、AP 走列存副本**，则属于「单机/分布式 + C 读」方案，参见下文 **单机拓扑 - C 读如何部署** 或 **分布式拓扑 - 列存副本如何部署**。

## 单机拓扑架构

单机或单 Zone 部署、或 Zone 数较少的场景下，可读副本类型与 AP 的对应关系如下。

### F 读（Follow 读）：全能副本，支持 TP+AP

- **Full 副本**（F 副本）包含 Paxos 中的 Leader 与 Follower，参与日志同步，可承担强一致读写与弱读。
 - 在单机/少 Zone 拓扑下，若不部署独立 C 副本，AP 查询可走 F 副本（行存或行列混存表的列存部分），由优化器与 `ob_table_access_policy` 等选择行存/列存路径。
 - 特点：无需单独列存 Zone，部署简单；TP 与 AP 共享同一批副本，需关注资源隔离（如通过 Resource Manager、用户资源组等）。

**F 读如何部署**：无需为 AP 做额外部署。集群按常规部署后，建表时选择行列混存或列存（参见 **行列混存架构如何部署**），TP 与 AP 共用同一套 F 副本即可。若有跑批等重负载，建议配置 Resource Manager 做资源隔离。

### C 读：纯列存副本，仅适用于纯 AP

- **ColumnStore 副本**（C 副本）为只读、纯列存形态，不参与 Paxos 选举，专用于 AP 类负载。
 - 单机拓扑下若为某租户增加 C 副本（例如单 Zone 内 F 副本 + 独立 Zone 的 C 副本），则 AP 流量到达 C 副本的方式 **随版本不同**：
     - **V4.6.0 之前**：须通过 **独立 ODP** 配置 **仅路由到列存副本**（如 `route_target_replica_type = 'ColumnStore'`、`proxy_route_policy = 'TARGET_REPLICA_TYPE_FOLLOWER_ONLY'`），实现与 TP 的读隔离。
     - **V4.6.0 及之后**：在租户 Locality 中完成 C 副本部署后，配置 **列存副本自动选择** 相关变量即可，**无需**为 C 副本单独部署 ODP。
 - 适用场景：以分析为主，希望与 TP 读路径物理隔离；是否采用弱读/强读按业务与 [ob_read_consistency](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685254) 及版本说明选择。

**C 读如何部署**（单机/少 Zone 下 C 副本）：

1. **在租户中指定 C 副本**：创建租户时在 `LOCALITY` 中写 C（如 `F@zone1,F@zone2,C@zone3`），或对已有租户 [添加 Zone](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682470)/[添加节点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682467) 后新增资源池并 `ALTER TENANT ... LOCALITY` 增加 `C@zone4`。完整 SQL 见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。
 2. **按版本配置访问路径**

      - **OceanBase 数据库 ≥ V4.6.0**：按 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137) 设置 `ap_query_route_policy` 等；应用连接 OBServer 或现有代理即可，**无需**为 C 副本单独部署 ODP 或配置 ODP 的 `route_target_replica_type` / `proxy_route_policy` / `init_sql`。
      - **OceanBase 数据库低于 V4.6.0**：在独立机器上部署 ODP（V4.3.2+），使用 `root@proxysys` 登录后设置：`obproxy_read_consistency = 1`、`route_target_replica_type = 'ColumnStore'`、`proxy_route_policy='TARGET_REPLICA_TYPE_FOLLOWER_ONLY'`、`init_sql='set @@ob_route_policy = COLUMN_STORE_ONLY'`。用 `SHOW PROXYCONFIG` 核对。
 3. **验证**：执行典型 AP 查询，确认计划与监控体现数据来自 C 副本侧（如列存扫描算子）；可通过 `DBA_OB_CS_REPLICA_STATS` / `CDB_OB_CS_REPLICA_STATS` 查看行转列进度。

## 分布式拓扑部署

多 Zone、多机房或跨地域部署时，除副本类型与路由外，还需考虑容灾降级与负载均衡。

### 跑批场景下 Resource Manager 做资源控制

- 跑批、大批量导入、物化视图刷新等后台型 AP 任务会占用较多 CPU、IO 等资源，可能影响前台 TP 或在线 AP 查询。
 - OceanBase 提供 **Resource Manager** 能力，可对不同类型的任务（如物化视图刷新、MLOG Purge、批处理任务）做资源隔离与上限配置，避免跑批打满资源。
 - 建议在分布式 AP 架构中，为跑批任务单独配置资源组或 Resource Manager 策略，保证在线 TP/AP 的稳定性。相关视图与配置参见 [DBA_OB_RSRC_DIRECTIVES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684662) 等。

#### 跑批与资源隔离如何部署

在分布式拓扑下，若存在重跑批或物化视图等后台任务，通过 Resource Manager 为相应任务配置资源组或 CPU/IO 上限即可，无需改动副本或 ODP。配置方式与视图见 [DBA_OB_RSRC_DIRECTIVES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684662) 及资源隔离相关文档。

### 列存副本与路由策略（分布式）

分布式下 **列存副本 + 路由** 的规划可拆成两部分理解：

| 维度 | V4.6.0 之前（ODP 访问 C 副本） | V4.6.0 及之后 |
| --- | --- | --- |
| **副本类型选择** | 通过 ODP `route_target_replica_type` 指定 `ColumnStore`（不可与 Full/Readonly 组合） | 由 `ap_query_route_policy` 等与优化器决定是否在列存副本上执行；`ob_route_policy` 等仍可按版本说明使用 |
| **容灾与回切** | `proxy_route_policy`：访问列存时常为 `TARGET_REPLICA_TYPE_FOLLOWER_ONLY` | 列存不可用时是否回退行存由 `ap_query_replica_fallback` 等控制，见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137) |
| **负载均衡** | ODP LDC/IDC 亲和：需 OBServer Zone 配置 `IDC`/`REGION`，ODP 配置 `proxy_idc_name` | 连接仍可能经 ODP 时，LDC 规则仍适用；直连 OBServer 时以 Observer 侧负载与副本选择逻辑为准 |

#### 分布式拓扑下列存副本如何部署

1. 在租户 Locality 中指定 C 副本（可多 Zone）；
 2. **若 OceanBase 数据库 ≥ V4.6.0**：按 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137) 配置会话或全局变量即可，**无需**为 C 副本单独部署 ODP。
 3. **若 OceanBase 数据库低于 V4.6.0**：为访问 C 副本部署独立 ODP（V4.3.2+），配置弱读 + `route_target_replica_type='ColumnStore'` + `proxy_route_policy='TARGET_REPLICA_TYPE_FOLLOWER_ONLY'` + `init_sql='set @@ob_route_policy = COLUMN_STORE_ONLY'`。
 4. 验证请求与行转列进度；多机房时在 **使用 ODP** 的场景下可继续配置 Zone 的 `IDC`/`REGION` 与 ODP `proxy_idc_name` 做 LDC 亲和。完整 Locality 示例见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。

## 列存副本与路由策略

### 经 ODP 访问 C 副本时的可读副本类型（route_target_replica_type）

适用版本：V4.6.0 之前。

- **Full**：全能副本（Leader + Follower），参与日志同步，支持 TP+AP。
 - **Readonly**：只读副本，用于读扩展。
 - **ColumnStore**：列存副本，专用于 AP；**不可与 Full/Readonly 组合**。配置为仅列存时，容灾策略固定为不允许回切主副本，且 `proxy_route_policy` 须为 `TARGET_REPLICA_TYPE_FOLLOWER_ONLY`。

### 路由与容灾降级（proxy_route_policy）

适用版本：V4.6.0 之前。

- `TARGET_REPLICA_TYPE_WITH_LEADER`：主副本与指定副本同时参与路由，无需容灾降级逻辑。
 - `TARGET_REPLICA_TYPE_FOLLOWER_FIRST`：优先指定类型副本，全部不可用时降级读主。
 - `TARGET_REPLICA_TYPE_FOLLOWER_ONLY`：仅路由到指定类型副本，不可用时断开连接，不回切主；**将流量定向至列存副本时固定使用此策略**。

### 服务端列存副本选择

适用版本：V4.6.0 及以上版本。

- 以 `ap_query_route_policy`、`ap_query_cost_threshold`、`ap_query_replica_fallback` 为主；说明与决策表见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。
 - [ob_route_policy](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685206) 作用于 OBServer 内部读路径可选的副本类型。

### 负载均衡（LDC/IDC）

- 在 **流量经过 ODP** 时，ODP 通过 LDC 在可选副本集合内按同 IDC → 同 Region → 跨 Region 排序，实现地域亲和与负载均衡。
 - 需在 OBServer 侧为 Zone 配置 `IDC`、`REGION`，在 ODP 侧配置 `proxy_idc_name`。详见 [ODP 读写分离与路由策略](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683319) 及 [SQL 路由](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683299)。

## 部署前置与选型决策

### 前置条件

在开始部署前，请确认：

- **版本与路径**：已根据本文 **「版本与访问路径决策」** 确定是走 **ODP 专线路由（低于 V4.6.0）** 还是 **列存副本自动选择（V4.6.0 及以上）**。
 - **ODP（仅 V4.6.0 之前访问 C 副本时）**：访问 C 副本的 ODP 须为 **V4.3.2 及以上**，且建议单独部署，不与访问 F 副本的 ODP 混用。
 - **集群与租户**：集群已按规划完成部署（如 2F1A、3F 等）；若采用 C 副本，需至少有一个 Zone 用于部署 C 副本，且该 Zone 建议仅放 C 副本。
 - **网络与权限**：应用与 OBServer/ODP 之间网络互通；执行 Locality、租户、ODP 配置的账号具备相应权限。

### 部署建议

| 场景 | 建议 |
| --- | --- |
| 选型 | 仅需同库 TP+AP、强一致读 → 行列混存表；需 TP/AP 物理隔离、分析走 C 副本 → 列存副本 + 按版本选择 ODP 或自动选择变量。 |
| C 副本数量 | 自 V4.3.5 BP1 起支持多 C 副本，建议最多 3 个。 |
| 访问 C 副本 | **低于 V4.6.0**：独立 ODP + 路由变量；**V4.6.0 及以上**：无需为 C 副本单独部署 ODP。C 副本所在 Zone 建议仅部署 C 副本，避免与 F/R 混部。 |
| 跑批与资源 | 存在重跑批、物化视图刷新时，建议配置 Resource Manager 做资源隔离与上限。 |
| 合并与 DDL | C 副本合并较慢，未完成前无法发起新一轮租户级合并；DDL 会加重资源占用，建议在低峰操作。 |

更多注意事项见 [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)。

## 相关文档

- [部署与使用列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717137)
 - [AP 查询与列存副本路由判定规则](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005717138)

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