---
title: 如何手工黑屏发起一次集群备份（全量备份+增量备份）-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 如何手工黑屏发起一次集群备份（全量备份+增量备份）相关的常见问题和使用技巧，帮助您快速解决 如何手工黑屏发起一次集群备份（全量备份+增量备份）的难题。
---
切换语言

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

划线反馈

# 如何手工黑屏发起一次集群备份（全量备份+增量备份）

更新时间：2026-05-11 09:51

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

本文主要介绍如何手工黑屏发起一次集群备份（全量备份+增量备份）。

## 适用版本

OceanBase 数据库 V2.2.76 及之后版本（不包括 V4.0 及之后版本）。

## 操作步骤

集群备份主要分为以下三步：

第一步：设置备份路径 `backup_dest`，并启动日志备份。 第二步：发起全量数据备份，等待完成后；再进行增量数据备份。 第三步：通过查看数据备份历史任务的命令，检查全量备份和增量备份是否成功。 ​

1. 首先使用 root 用户登录数据库的 sys 租户。

   ```shell
   obclient -h172.20.xx.x -uroot@sys -P2xxx -pOceanBasexxx -A oceanbase
   Welcome to the MariaDB monitor.  Commands end with ; or \g.
   Your MySQL connection id is 3221497706
   Server version: 5.7.25 OceanBase 3.2.3.3 (r107010022023021010-264a76a4fa7b5ff429149d60ca051391dc4176e9) (Built Feb 10 2023 10:47:00)
   Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.​

   ```
 2. 先查看下 `backup_dest` 的路径设置是否为空。这里 `value` 是空值，需要设置一下。

   ```shell
   obclient [oceanbase]> show parameters like 'backup_dest';

   ```

   查询结果如下。

   ```sql
   +-------+----------+-------------+----------+-------------+-----------+-------+-------------+----------+---------+---------+-------------------+
   | zone  | svr_type | svr_ip      | svr_port | name        | data_type | value | info        | section  | scope   | source  | edit_level        |
   +-------+----------+-------------+----------+-------------+-----------+-------+-------------+----------+---------+---------+-------------------+
   | zone1 | observer | 172.xx.xx.x |     2882 | backup_dest | NULL      |       | backup dest | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
   +-------+----------+-------------+----------+-------------+-----------+-------+-------------+----------+---------+---------+-------------------+
   1 row in set (0.004 sec)

   ```
 3. 设置 `backup_dest` 前，先把日志备份停下来。这里路径是空的，肯定是没启动日志备份，所以报错了。

   ```shell
   obclient [oceanbase]> alter system noarchivelog;
   ERROR 9024 (HY000): log archive backup is already disabled

   ```
 4. 查看一下日志备份的状态，可以看到是 `STOP`。

   ```shell
   obclient [oceanbase]>  select * from cdb_ob_backup_archivelog;

   ```

   返回结果如下。

   ```sql
   +-------------+-------------------+-----------+--------+----------------+-----------------+----------------+---------------+-------------+--------------+-------------------+---------------------+----------------------+
   | INCARNATION | LOG_ARCHIVE_ROUND | TENANT_ID | STATUS | START_PIECE_ID | BACKUP_PIECE_ID | MIN_FIRST_TIME | MAX_NEXT_TIME | INPUT_BYTES | OUTPUT_BYTES | COMPRESSION_RATIO | INPUT_BYTES_DISPLAY | OUTPUT_BYTES_DISPLAY |
   +-------------+-------------------+-----------+--------+----------------+-----------------+----------------+---------------+-------------+--------------+-------------------+---------------------+----------------------+
   |           1 |                 0 |         1 | STOP   |              0 |               0 |                |               |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   +-------------+-------------------+-----------+--------+----------------+-----------------+----------------+---------------+-------------+--------------+-------------------+---------------------+----------------------+
   1 row in set (0.001 sec)

   ```
 5. 这个是比较关键的一步，设置你需要备份的路径。

   #### 注意

   这个路径要提前做过服务端挂载，不然备份可能会失败！同时确保目录为空。

   ```shell
   obclient [oceanbase]> alter system set backup_dest='file:///obbackup';
   Query OK, 0 rows affected (0.047 sec)

   ```
 6. 再次查看 `backup_dest` 的路径是否设置。这里 `value` 变成了 `file:///obbackup`，说明 设置备份路径 `backup_dest` 已经设置成功了。

   ```

   返回结果如下。

   ```sql
   +-------+----------+-------------+----------+-------------+-----------+------------------+-------------+----------+---------+---------+-------------------+
   | zone  | svr_type | svr_ip      | svr_port | name        | data_type | value            | info        | section  | scope   | source  | edit_level        |
   +-------+----------+-------------+----------+-------------+-----------+------------------+-------------+----------+---------+---------+-------------------+
   | zone1 | observer | 172.xx.xx.x |     2882 | backup_dest | NULL      | file:///obbackup | backup dest | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
   +-------+----------+-------------+----------+-------------+-----------+------------------+-------------+----------+---------+---------+-------------------+
   1 row in set (0.004 sec)

   ```
 7. 启动日志备份。这里会在指定路径下开始日志备份。

   ```shell
   obclient [oceanbase]> alter system archivelog;
   Query OK, 0 rows affected (0.055 sec)

   ```
 8. 查看一下日志备份的状态。可以看到是 `BEGINNING`，说明日志备份正在启动，需要等待它完全拉起。

   ```

   返回结果如下。

   ```sql
   +-------------+-------------------+-----------+-----------+----------------+-----------------+----------------------------+---------------+-------------+--------------+-------------------+---------------------+----------------------+
   | INCARNATION | LOG_ARCHIVE_ROUND | TENANT_ID | STATUS    | START_PIECE_ID | BACKUP_PIECE_ID | MIN_FIRST_TIME             | MAX_NEXT_TIME | INPUT_BYTES | OUTPUT_BYTES | COMPRESSION_RATIO | INPUT_BYTES_DISPLAY | OUTPUT_BYTES_DISPLAY |
   +-------------+-------------------+-----------+-----------+----------------+-----------------+----------------------------+---------------+-------------+--------------+-------------------+---------------------+----------------------+
   |           1 |                 1 |         1 | BEGINNING |              0 |               0 | 2023-02-22 11:30:19.963182 |               |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1001 | BEGINNING |              0 |               0 | 2023-02-17 15:09:50.988364 |               |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1002 | BEGINNING |              0 |               0 | 2023-02-17 15:09:58.602044 |               |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1003 | BEGINNING |              0 |               0 | 2023-02-17 15:10:05.785874 |               |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1004 | BEGINNING |              0 |               0 | 2023-02-17 15:10:13.116938 |               |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   +-------------+-------------------+-----------+-----------+----------------+-----------------+----------------------------+---------------+-------------+--------------+-------------------+---------------------+----------------------+
   5 rows in set (0.001 sec)

   ```
 9. 再次查看一下日志备份的状态。可以看到是 `DOING`，说明日志备份已经完全起来了。说明第一步就完成了。

   ```

   返回结果如下。

   ```sql
   +-------------+-------------------+-----------+--------+----------------+-----------------+----------------------------+----------------------------+-------------+--------------+-------------------+---------------------+----------------------+
   | INCARNATION | LOG_ARCHIVE_ROUND | TENANT_ID | STATUS | START_PIECE_ID | BACKUP_PIECE_ID | MIN_FIRST_TIME             | MAX_NEXT_TIME              | INPUT_BYTES | OUTPUT_BYTES | COMPRESSION_RATIO | INPUT_BYTES_DISPLAY | OUTPUT_BYTES_DISPLAY |
   +-------------+-------------------+-----------+--------+----------------+-----------------+----------------------------+----------------------------+-------------+--------------+-------------------+---------------------+----------------------+
   |           1 |                 1 |         1 | DOING  |              0 |               0 | 2023-02-22 11:30:19.963182 | 2023-02-22 11:30:29.698303 |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1001 | DOING  |              0 |               0 | 2023-02-22 11:30:19.963182 | 2023-02-22 11:30:29.698303 |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1002 | DOING  |              0 |               0 | 2023-02-22 11:30:19.963182 | 2023-02-22 11:30:29.699315 |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1003 | DOING  |              0 |               0 | 2023-02-22 11:30:19.963182 | 2023-02-22 11:30:29.699315 |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   |           1 |                 1 |      1004 | DOING  |              0 |               0 | 2023-02-22 11:30:19.963182 | 2023-02-22 11:30:29.698303 |           0 |            0 |              NULL | 0.00MB              | 0.00MB               |
   +-------------+-------------------+-----------+--------+----------------+-----------------+----------------------------+----------------------------+-------------+--------------+-------------------+---------------------+----------------------+
   5 rows in set (0.001 sec)
   ​```

   ```
 10. 发起集群合并。发起备份前先做一次合并。

    #### 注意

    OceanBase 数据库 V3.2 以后版本可以不做合并，直接发起备份。为了提高备份效率和性能，仍然建议备份前进行一次集群合并。

    ```shell
    obclient [oceanbase]> alter system major freeze;
    Query OK, 0 rows affected (0.013 sec)

    ```
 11. 这条命令可以查看到集群合并的状态。这里还是 `MERGING` 状态，等待合并完成。

    ```shell
    obclient [oceanbase]> select * from __all_zone where name like 'merge_status';

    ```

    返回结果如下。

    ```sql
    +----------------------------+----------------------------+-------+--------------+-------+---------+
    | gmt_create                 | gmt_modified               | zone  | name         | value | info    |
    +----------------------------+----------------------------+-------+--------------+-------+---------+
    | 2023-02-17 15:07:31.881643 | 2023-02-22 11:33:57.831798 |       | merge_status |     1 | MERGING |
    | 2023-02-17 15:07:31.882696 | 2023-02-22 11:33:57.862263 | zone1 | merge_status |     1 | MERGING |
    +----------------------------+----------------------------+-------+--------------+-------+---------+
    2 rows in set (0.001 sec)

    ```
 12. 查看到集群合并的状态。状态变成了 `IDLE`，说明合并完成了。

    ```

    返回结果如下。

    ```sql
    +----------------------------+----------------------------+-------+--------------+-------+------+
    | gmt_create                 | gmt_modified               | zone  | name         | value | info |
    +----------------------------+----------------------------+-------+--------------+-------+------+
    | 2023-02-17 15:07:31.881643 | 2023-02-22 11:34:37.507944 |       | merge_status |     0 | IDLE |
    | 2023-02-17 15:07:31.882696 | 2023-02-22 11:34:27.384210 | zone1 | merge_status |     0 | IDLE |
    +----------------------------+----------------------------+-------+--------------+-------+------+
    2 rows in set (0.002 sec)

    ```
 13. 发起集群全量数据备份，等待完成。

    ```shell
    obclient [oceanbase]> alter system backup database ;
    Query OK, 0 rows affected (0.618 sec)

    ```
 14. 发起集群增量数据备份，等待完成。说明第二步全量备份和增量备份就完成了。

    ```shell
    obclient [oceanbase]> alter system backup incremental database;
    Query OK, 0 rows affected (0.264 sec)
    ​```

    ```
 15. 查看集群两次备份的情况，可以发现全量备份和增量备份都成功了。

    ```shell
    obclient [oceanbase]> select incarnation, tenant_id, bs_key, backup_type, start_time, completion_time from CDB_OB_BACKUP_SET_DETAILS order by start_time;

    ```

    返回结果如下。

    ```sql
    +-------------+-----------+--------+-------------+----------------------------+----------------------------+
    | incarnation | tenant_id | bs_key | backup_type | start_time                 | completion_time            |
    +-------------+-----------+--------+-------------+----------------------------+----------------------------+
    |           1 |         1 |      1 | D           | 2023-02-22 11:37:11.656803 | 2023-02-22 11:38:01.775377 |
    |           1 |      1001 |      1 | D           | 2023-02-22 11:37:11.656803 | 2023-02-22 11:37:59.059722 |
    |           1 |      1002 |      1 | D           | 2023-02-22 11:37:11.656803 | 2023-02-22 11:37:59.866087 |
    |           1 |      1003 |      1 | D           | 2023-02-22 11:37:11.656803 | 2023-02-22 11:38:00.720019 |
    |           1 |      1004 |      1 | D           | 2023-02-22 11:37:11.656803 | 2023-02-22 11:38:01.564347 |
    |           1 |         1 |      2 | I           | 2023-02-22 11:42:38.491200 | 2023-02-22 11:43:30.938047 |
    |           1 |      1001 |      2 | I           | 2023-02-22 11:42:38.491200 | 2023-02-22 11:43:22.552796 |
    |           1 |      1002 |      2 | I           | 2023-02-22 11:42:38.491200 | 2023-02-22 11:43:25.273293 |
    |           1 |      1003 |      2 | I           | 2023-02-22 11:42:38.491200 | 2023-02-22 11:43:28.008605 |
    |           1 |      1004 |      2 | I           | 2023-02-22 11:42:38.491200 | 2023-02-22 11:43:30.741481 |
    +-------------+-----------+--------+-------------+----------------------------+----------------------------+
    10 rows in set (0.001 sec)

    ```

## 更多信息

- 查看集群的合并状态

  ```shell
  obclient [oceanbase]> SELECT *FROM __all_zone WHERE name='last_merged_version' OR name='frozen_version' OR name='merge_status';

  ```
 - 查看数据备份当前任务

  ```shell
  obclient [oceanbase]> select* from CDB_OB_BACKUP_PROGRESS;

  ```
 - 查看数据备份历史任务

  ```

  `backup_type=D` 表示全量备份，`backup_type=I` 表示增量备份。

上一篇

[OceanBase 数据库 Oracle 模式的 RECOVERY WINDOW](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000144)

下一篇

[备份清理不会清除已删除租户的文件夹，且文件夹内留有元信息文件](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000832611) ![有帮助](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) 咨询热线
