---
title: "备份恢复性能调优 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: 备份恢复性能调优 性能调优手段 理想情况下，备份恢复的性能应当仅受限于数据分布（分区数量和分区大小）及硬件（CPU、磁盘、网络）性能，但在默认配置下，备份恢复可能无法充分发挥硬件性能，为此，OceanBase 数据库提供了资源隔离策略及以下配置项，对备份恢复进行性能调优： 网络配置：配置项 sys_bkgd_net_…
---
切换语言

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

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

# 备份恢复性能调优

更新时间：2026-07-10 11:28:39

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/600.manage/600.backup-and-recovery/1400.backup-and-recovery-performance-tuning-parameters.md)  

## 性能调优手段

理想情况下，备份恢复的性能应当仅受限于数据分布（分区数量和分区大小）及硬件（CPU、磁盘、网络）性能，但在默认配置下，备份恢复可能无法充分发挥硬件性能，为此，OceanBase 数据库提供了资源隔离策略及以下配置项，对备份恢复进行性能调优：

- 网络配置：配置项 `sys_bkgd_net_percentage` 用于限制后台系统任务（包含备份恢复任务）可占用总网络带宽的百分比。将 `sys_bkgd_net_percentage` 设置为合适的值有助于备份恢复任务在不影响前台业务的前提下充分利用网络带宽资源。
 - CPU、IO 配置：同时，Oceanbase 数据库还提供了 Resource Manager 资源隔离机制来限制不同类型的任务的 CPU、IO 使用量。如果为备份恢复任务配置了资源隔离，请根据实际资源和业务需求来设置上限，避免备份恢复任务的 CPU 和 IO 使用量达到瓶颈。
 - 其他配置：在保证 CPU、IO 以及网络资源充足的情况下，还可以通过设置相关配置项（`ha_low_thread_score`、`log_archive_concurrency`、`log_restore_concurrency`、`ha_high_thread_score` 等）来提高备份恢复任务的并发度以进一步提升性能。

## 资源配置相关

### 集群级配置项 `sys_bkgd_net_percentage`

配置项 `sys_bkgd_net_percentage` 用于设置后台系统任务可占用的网络带宽百分比，默认值为机器网卡速率的 60%。带宽满时，在不影响业务请求的前提下，可以适当调大配置项 `sys_bkgd_net_percentage` 的值。

设置成功后，可以通过以下方式查看日志：

1. 使用 `admin` 用户登录 OBServer 节点所在的机器。
 2. 进入 OceanBase 数据库软件的安装目录。

   以下以 OceanBase 数据库软件的安装路径为 `/home/admin/oceanbase/` 为例，操作时请以实际环境为准。

   ```shell
   [admin@xxx /]$ cd /home/admin/oceanbase

   ```
 3. 执行以下命令，查看网卡速率。

   ```shell
   [admin@xxx oceanbase]$ grep -E 'print band limit|succeed to init_bandwidth_throttle' log/observer.log*

   ```

   其中，`observer.log` 为集群启动时的 observer 日志。

   例如，查询结果如下：

   ```shell
   log/observer.log.20210811100806：[2021-08-11 10：06：32.934433] INFO  [SERVER] ob_server.cpp：1783 [76957] [0] [Y0-0000000000000000] [lt=4] [dc=0] succeed to init_bandwidth_throttle(sys_bkgd_net_percentage_=60，ethernet_speed_=1310720000，rate=786432000)
   log/observer.log.20210811100806：[2021-08-1110：07：42.351813] INFO  [COMMON] utility.cpp：1487 [77169][418] [Y9FA64586E9E-0005C93F15DAE715] [lt=11] [dc=0] print band limit(comment= in ， copy_KB=0， sleep_ms_sum=0， speed_KB_per_s=0， total_sleep_ms=0，total__bytes=531, rate_KB/s=786432，print_interval_ms=69417)

   ```

   第一条查询结果中，`sys_bkgd_net_percentage_=60` 表示后台系统任务可占用的网络带宽为机器网卡速率的 60%；`network_speed=1310720000` 表示 OceanBase 数据库识别的机器网卡的最大速率为 1310720000 B/s；`rate=786432000` 表示限速后的最大速率为 786432000 B/s，且 `rate = network_speed * sys_bkgd_net_percentage`。

   第二条查询结果中，`rate_KB/s=786432` 表示 OceanBase 数据库识别的限速后的最大速率（`rate`）为 786432 KB/s。

由于 OceanBase 数据库识别到的网卡速率可能不准，查看日志后，如果发现 OceanBase 数据库识别的速率与实际不一致，可以参考 [网卡速率检查](https://www.oceanbase.com/docs/common-ocp-1000000002380809) 来进行修改。

修改完成后，可以查看视图 [V$OB_NIC_INFO](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015065) 来确认修改后的网卡速率是否生效。

### Resource Manager 的资源隔离

Resource Manager 是 OceanBase 数据库的资源隔离机制，通过 Function 级资源隔离可以配置不同后台任务的资源上限，包括 CPU、IOPS、网络带宽等。有关资源隔离的详细介绍，参见 [资源隔离概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013577)。

Function 级资源隔离中，与备份恢复相关的后台任务如下：

- ha_high：复制、Rebuild 和恢复等高优先级高可靠任务。
 - ha_mid：中优先级高可靠任务，例如迁移任务。
 - ha_low：备份和备份清理等低优先级高可靠任务。

可以通过视图 [DBA_OB_RSRC_DIRECTIVES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015302) 来查看当前租户配置的资源隔离计划，如果查询结果为空，则表示租户未配置资源隔离计划。如果查询到后台任务对应的记录，可以先观察 CPU、IO、网络带宽等是否已达到瓶颈并且与资源隔离的限制相符，如果确认相符，建议在不影响前台业务的前提下，适当修改资源隔离计划。修改资源计划的详细操作，参见 [更新资源管理计划内容（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016140) 和 [更新资源管理计划内容（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016148)。

执行备份恢复的性能测试时，不建议配置资源隔离计划。

## 数据备份相关

| 配置项 | 描述 | 默认值 | 配置说明 |
| --- | --- | --- | --- |
| ha_low_thread_score | 租户级配置项，用于控制数据备份的并发数。 | 0，表示默认并发数为 2 | 小规格租户（租户 CPU ≤ 4C）建议设置为默认值；大规格租户可以先设置为 10，如果发现备份速度过慢，可以按需翻倍调整。执行备份恢复的性能测试时，建议直接调整到最大值 100。 |

## 日志归档相关

| 配置项 | 描述 | 默认值 | 配置说明 |
| --- | --- | --- | --- |
| log_archive_concurrency | 租户级配置项，用于控制日志归档的并发数。 | 0，在当前版本中，表示根据租户的 `MAX_CPU` 按照以下自适应规则计算归档工作线程数：   - 当 `租户的 MAX_CPU <= 8` 时，`归档线程数 = MAX_CPU`。 - 当 `8 < 租户的 MAX_CPU < 32` 时，`归档线程数 = max(8, MAX_CPU/2)`，即 `MAX_CPU/2` 的计算结果如果不足 8，则取 8。 - 当 `租户的 MAX_CPU >= 32` 时，`归档线程数 = max(16, MAX_CPU/4)`，即 `MAX_CPU/4` 的计算结果如果不足 16，则取 16。 | 建议大、小规格的租户均保持为默认值，按自适应规则来计算工作线程数。 |

## 物理恢复相关

| 配置项 | 描述 | 默认值 | 配置说明 |
| --- | --- | --- | --- |
| log_restore_concurrency | 租户级配置项，用于控制日志恢复的并发数。 | 0，表示以租户的 `MAX_CPU` 的核数作为并发数 | 调大该配置项的值，除了会增加工作线程，同时也会增加内存资源的开销。建议统一设置为默认值 0，如果发现恢复速度过慢，再根据机器的实际资源适当调大该配置项的值。 |
| ha_high_thread_score | 租户级配置项，用于控制数据恢复的并发数。 | 0，表示默认并发数为 8 | 非性能测试时建议使用默认值，执行备份恢复的性能测试时建议调整到最大值 100。 |
| _restore_idle_time | 集群级隐藏配置项，用于控制 RS 恢复的调度间隔。 | 1m，表示 1 分钟 | 调整为 10s 的情况下，数据恢复的耗时会减少几十秒至两分钟时间不等，建议针对有较高性能要求的小规格租户（租户 CPU ≤ 4C）进行调整，否则效果不明显。 |

## 表级恢复相关

### 物理恢复辅助租户阶段

通过 [表级恢复相关视图介绍](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013153) 中的视图获取与该任务关联的临时辅助租户的名称，辅助租户名称默认以 `AUX` 为前缀开头进行标识。

表级恢复中物理恢复辅助租户阶段与物理恢复一致，该阶段相关的性能调优，可参考本文档中 **物理恢复相关** 的内容进行调优。

### 跨租户导表阶段

| 配置项 | 描述 | 默认值 | 配置说明 |
| --- | --- | --- | --- |
| ddl_thread_score | 租户级配置项，用于控制租户所在 OBServer 节点的表级恢复线程池的容量。 | 0，表示默认表级恢复线程池的容量为 2 | - 小规格租户（租户 CPU ≤ 4C）建议设置为 4。 - 大规格租户可以先设置为 8，如果发现恢复速度过慢，需要根据表级恢复并行参数 `recover_table_concurrency` 和 `recover_table_dop` 的设置情况以及租户的实际资源情况，按需翻倍调整。    恢复单个表需要的最大并行线程数 = `分区数 * recover_table_dop`，例如，若某表有 4 个分区，且 `recover_table_dop=2`，则需要的并行线程数为 `4×2=8`。      同时，恢复多表需要的最大并行线程数是恢复各个表需要的最大并行线程数之和。示例：若需要恢复两个表，表 1 有 4 个分区，表 2 有 8 个分区，且`recover_table_dop=2`，则需要的最大并行线程数为 `4×2+8×2=24`。 |
| recover_table_concurrency | 租户级配置项，用于控制多表并行恢复的并行度，设置允许多少个表同时执行跨租户导表。 | 0，表示默认允许 1 个表执行跨租户导表 | 建议统一设置为默认值 0。此外：   - 对于多张表的恢复场景，如果发现恢复速度过慢，再根据租户的实际资源的翻倍调大。 - 对于恢复大量小表的场景，一般建议设置为 8 或 16。    #### 注意    跨租户导表会消耗大量的临时存储空间和内存资源，建议结合租户的资源情况合理调大。其中，临时存储空间的消耗是在重建索引阶段，如果表的数据量很大，可能会消耗大量的临时空间。临时空间消耗大可能导致出现查询失败，事务回滚、服务不可用等问题。 |
| recover_table_dop | 租户级配置项，用于控制单表恢复的并行度。 | 0，表示默认并行度为 1 | 建议统一设置为 8 或 16，即能满足大部分场景要求。  如果需要恢复的表是数据量较大的非分区表或恢复的表存在一个数据量较大的分区，建议根据分区数据量翻倍调大 `recover_table_dop` 的值。 |

## 相关文档

- [网卡速率检查](https://www.oceanbase.com/docs/common-ocp-1000000002380809)
 - [配置租户内资源隔离(MySQL 模式)](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016135)
 - [配置租户内资源隔离（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016147)
 - [更新资源管理计划内容（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016140)
 - [更新资源管理计划内容（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016148)

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