---
title: "LOB 类型 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: LOB 类型 LOB 类型是用于存储 TEXT、BLOB、JSON、Geometry 等数据类型。 LOB 的存储的方式分为内联存储（INROW）和外联存储（OUTROW）两种。 内联存储 内联存储是将 LOB 数据与主表行存储在一起，在读取 LOB 数据时只需要进行一次存储访问操作。 外联存储 外联存储是将 LOB…
---
切换语言

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

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

# LOB 类型

更新时间：2026-07-15 15:27:38

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/300.basic-elements-of-oracle-mode/100.built-in-data-types-of-oracle-mode/600.large-object-data-type-of-oracle-mode/400.lob-type-of-oracle-mode.md)  

`LOB` 类型是用于存储 TEXT、BLOB、JSON、Geometry 等数据类型。 `LOB` 的存储的方式分为内联存储（INROW）和外联存储（OUTROW）两种。

## 内联存储

内联存储是将 LOB 数据与主表行存储在一起，在读取 LOB 数据时只需要进行一次存储访问操作。

## 外联存储

外联存储是将 LOB 数据存储在 LOB 辅助表中，在读取 LOB 数据时需要读取主表行，获取外联 LOB 的定位符（locator），之后根据定位符信息去 LOB 辅助表中读取实际的 LOB 数据，在这个过程中需要进行两次存储访问操作。

## LOB 类型

在 Oracle 模式下，常见的 LOB 类型包括：

- **BLOB（Binary Large Object）**：全称为二进制大型对象，通常用于存储图片、文件、音乐等大文件信息。

- **CLOB（Character Large Object）**：全称为字符大型对象，用于存储单字节和多字节字符数据。
 - **JSON**：用于存储 JSON 格式的数据，常用于处理结构化数据。
 - **SDO_GEOMETRY**：用来存储和处理几何图形数据的数据类型，它是一个复合数据类型，用于表示二维或三维的几何图形。
 - **XMLType**：用于存储 XML 格式的数据，便于处理和查询 XML 文档。

#### 说明

XMLType 在某些方面不同于传统的 LOB 类型。它实际上是一种用户定义类型（UDT），其内部包含一个 BLOB 字段。

## LOB 一致性校验

外联存储时，主表与 LOB 辅助表通过 LOB ID 关联：主表定位符中的 LOB ID 集合，应与 LOB 辅助表中出现的 LOB ID 集合一致。若出现“主表有而辅助表无”或“辅助表有而主表无”等不一致，可能导致读取异常或空间无法回收等问题。

该功能通过 LOB 校验任务（LOB Task）扫描主表收集 LOB ID 集合，并与 LOB 辅助表扫描得到的 LOB ID 集合做对比，输出是否一致及差异信息，便于在低峰期巡检或在故障排查时确认数据关系是否正常。

#### 注意

校验会扫描主表与 LOB 辅助表相关数据，对 I/O 与 CPU 有一定开销，请在业务低峰期执行，并结合下文为任务配置合适的资源组。

### 与资源组及 I/O 基准配合使用说明

LOB 一致性校验会扫描主表与 LOB 辅助表，I/O 与 CPU 开销较大。对校验任务做 I/O 上限等限额时，依赖租户侧磁盘 I/O 基准（由 I/O 校准产生）。不同部署形态下建议如下：

- 公有云等已默认完成 I/O 校准的环境：通常可直接在租户内配置资源管理计划与资源组。
 - 私有云或未做过 I/O 校准的环境：需先在系统租户完成磁盘 I/O 校准，再根据基准为业务租户规划 Unit 的 `MAX_IOPS` / `MIN_IOPS`，并与资源组中的 I/O 限额配合。校准命令、进度查看及与后台任务资源隔离的关系，请参见 [后台任务的资源隔离](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682926)；磁盘性能校准步骤另见 [磁盘性能校准](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685793)。

### 完整示例

使用一致性校验功能时，需要先进行 I/O 校准，然后创建 LOB 校验专用资源计划，并配置资源管理计划与资源组。

#### 第一步：I/O 校准（可选）

如果未做过 I/O 校准，需要先在系统租户执行 I/O 校准，校准完成到生效可能需要 1-2 分钟。

#### 注意

此部分命令需在系统租户执行。

```sql
ALTER SYSTEM RUN JOB 'io_calibration';

```

校准完成后，可通过 [GV$OB_IO_CALIBRATION_STATUS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684319) 查看校准任务状态，通过 [GV$OB_IO_BENCHMARK](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684406) 查看各节点基准 IOPS。为租户配置 Unit IOPS 时，建议在基准（例如 16 KB 读对应 IOPS）基础上预留约 10% 余量，避免磁盘打满影响在线业务延迟。

```sql
SELECT * FROM GV$OB_IO_CALIBRATION_STATUS;
SELECT * FROM GV$OB_IO_BENCHMARK;

```

#### 第二步：创建 LOB 校验专用资源计划

在需运行校验的业务租户内，可单独建一套资源计划，将 LOB 校验相关后台任务映射到专用资源组并限制 CPU、IOPS。以下示例计划名为 `LOB_CHECK`，资源组名为 `LOB_CHECK`，通过 `FUNCTION` 映射将取值 `LOB_CHECK` 的后台任务划入该组；`MGMT_P1`、`UTILIZATION_LIMIT`、`MAX_IOPS`、`MIN_IOPS`、`WEIGHT_IOPS` 等请按实际规格调整。

```sql
BEGIN DBMS_RESOURCE_MANAGER.CREATE_PLAN('LOB_CHECK', 'plan for lob_check'); END; /
BEGIN DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP('LOB_CHECK', 'LOB_CHECK'); END; /
BEGIN
  DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    PLAN => 'LOB_CHECK',
    GROUP_OR_SUBPLAN => 'LOB_CHECK',
    COMMENT => 'LOB_CHECK_GROUP',
    MGMT_P1 => 30,
    UTILIZATION_LIMIT => 30,
    MAX_IOPS => 20,
    MIN_IOPS => 0,
    WEIGHT_IOPS => 20);
END;
/
BEGIN DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'LOB_CHECK', 'LOB_CHECK'); END; /

```

#### 说明

与 MySQL 模式常见的 `CALL DBMS_RESOURCE_MANAGER.*` 写法不同，Oracle 模式租户通常使用 `BEGIN ... END;` 匿名块调用资源管理相关过程。

激活资源管理计划后，上述映射与限额才会对会话及后台任务生效：

```sql
SET GLOBAL resource_manager_plan = 'LOB_CHECK';

```

`resource_manager_plan` 的含义与注意事项参见 [resource_manager_plan](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685210)。

`DBMS_RESOURCE_MANAGER` 过程、参数和权限说明请参见 [DBMS_RESOURCE_MANAGER 概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686872) 与 [配置租户内资源隔离（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685789)。

#### 第三步：配置定时任务（可选）

如果需要定期执行 LOB 一致性校验，可手动启用定时任务，启用后默认触发时间为每周日凌晨 4 点。

```sql
-- 开启任务
CALL DBMS_SCHEDULER.ENABLE('lob_check_job');
-- 关闭任务
CALL DBMS_SCHEDULER.DISABLE('lob_check_job');
-- 修改定时任务触发周期和开始时间
CALL DBMS_LOB_MANAGER.RESCHEDULE_JOB('2025-12-01 17:48:00', 'FREQ=DAILY; INTERVAL=1');

```

查看调度任务信息：

```sql
SELECT * FROM DBA_SCHEDULER_JOBS WHERE job_name='lob_check_job';

```

#### 第四步：执行 LOB 一致性校验

```sql
-- 触发当前租户所有含 LOB 辅助表的数据表进行一致性校验
CALL DBMS_LOB_MANAGER.CHECK_LOB();

-- 仅触发指定 table_id 的表进行一致性校验
CALL DBMS_LOB_MANAGER.CHECK_LOB('[500001, 500003]');

-- 任务控制（仅校验任务）
CALL DBMS_LOB_MANAGER.CANCEL_JOB('check_lob');
CALL DBMS_LOB_MANAGER.SUSPEND_JOB('check_lob');
CALL DBMS_LOB_MANAGER.RESUME_JOB('check_lob');

```

#### 第五步：查看 LOB 一致性校验结果

通过 `DBA_OB_LOB_CHECK_TASKS` 查看当前 LOB 任务进度，通过 `DBA_OB_LOB_CHECK_EXCEPTION_RESULT` 查看异常结果。

```sql
SELECT * FROM DBA_OB_LOB_CHECK_TASKS;
SELECT * FROM DBA_OB_LOB_CHECK_EXCEPTION_RESULT;

```

## 相关文档

- [BLOB 数据类型](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005688277)
 - [CLOB 数据类型](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005688276)
 - [JSON 数据类型](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005688296)
 - [SDO_GEOMETRY](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005688300)
 - [XMLType](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005688271)

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