---
title: "合并管理概述 | OceanBase 文档中心"
description: 合并管理概述 本节主要介绍合并的分类、状态及压缩算法。 合并操作（Major Compaction）是将动静态数据做归并，会比较费时。当转储产生的增量数据积累到一定程度时，通过 Major Freeze 实现大版本的合并。合并与转储的最大区别在于，合并是集群上所有的分区在一个统一的快照点和全局静态数据进行合并的行为，…
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 3.2.3 企业版 LTS

# 合并管理概述

更新时间：2025-07-17 16:36:45

本节主要介绍合并的分类、状态及压缩算法。

合并操作（Major Compaction）是将动静态数据做归并，会比较费时。当转储产生的增量数据积累到一定程度时，通过 Major Freeze 实现大版本的合并。合并与转储的最大区别在于，合并是集群上所有的分区在一个统一的快照点和全局静态数据进行合并的行为，是一个全局的操作，最终形成一个全局快照。

## 合并分类

按照合并数据量，合并可以分为：

- 全量合并：将静态数据全部读出并和动态数据合并为最终的静态数据。合并时间长，耗费 IO 和 CPU。
 - 增量合并：仅仅合并被修改过的宏块，没有改变的宏块进行复用。

  增量合并极大地减少了合并的工作量，是 OceanBase 数据库目前默认的合并算法。
 - 渐进合并：每次全量合并一部分，若干轮次后整体数据被重写一遍。
 - 并行合并：将数据划分到不同线程中并行做合并。
 - 轮转合并：在合并时将正在进行合并的副本上的流量切换到其他未合并的副本上，待该副本合并完成后再将流量切回。

  您可以对集群的每个 Zone 进行轮转合并，保证未合并的 Zone 可以完全无任何性能影响地对外提供服务。

更多合并相关的详细介绍信息，请参见 [合并](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000355114)。

合并相关的配置项及其说明请参见 [修改合并配置](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000355965)。

## 合并状态

合并的状态可以通过内部表 `__all_zone` 中 `name` 列的 `merge_status` 来查看，该状态可以表示集群的状态和各个 Zone 的状态。

合并状态主要有以下几种：

- `IDLE`：表示未进行合并，并且当 `last_merged_version` 与 `frozen_version` 的值一致时，表示合并已完成。
 - `MERGING`：表示正在进行合并。
 - `TIMEOUT`：表示合并超时，但是合并不会暂停，仍然继续，仅设置超时标志。
 - `ERROR`：表示合并出错，需要高优先级处理。

合并超时与报错的更多介绍信息，请参见 [合并超时与报错](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000355964)。

## 合并的压缩算法

OceanBase 数据库不会实时将小部分数据刷盘，而是通过合并的方式集中对数据进行刷盘，因此可以采用压缩的方式来写入磁盘，此时磁盘的空间利用率得到提升。在压缩算法和压缩功能的选择上，您可以根据实际情况选择高压缩率但是耗费更多 CPU 的方式，也可以选择普通的压缩方式。

您可以通过参数 `default_compress_func` 来配置压缩方式，默认值为 `zstd_1.3.8`。其他可指定的值还有 `none`、`lz4_1.0`、`snappy_1.0`、`zlib_1.0` 和 `zstd_1.0`。

> **说明**
>
>  
>
> 更高的压缩率将更节约磁盘空间，但是也意味着性能的牺牲。例如，通常 ZSTD 比 LZ4 节省更多的空间，但是 ZSTD 合并的时间更长，同时需要 IO 查询的 RT 也更大。

如果希望为单独的表选择特别的压缩算法，您可以在创建数据表时指定压缩算法。

MySQL 租户创建表并指定压缩算法的语法请参见 [CREATE TABLE](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000356929)。Oracle 租户创建表并指定压缩算法的语法请参见 [CREATE TABLE](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357361)。

## 合并的触发方法

OceanBase 数据库支持自动触发合并、定时触发合并和手动触发合并。

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