---
title: "备份前准备 - OceanBase 数据库 V4.2.1 | OceanBase 文档中心"
description: 备份前准备 在进行数据备份前，需要进行一些备份前的准备工作，包括配置备份目的端、备份秘钥等。 配置备份目的端 配置备份目的端时，由于系统租户不包含用户数据，是集群管理用的租户，不支持备份恢复，故 sys 租户无需配置 DATA_BACKUP_DEST 参数。 注意事项 配置备份目的端时，要求每个租户的备份路径需要配置…
---
切换语言

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

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

# 备份前准备

更新时间：2026-04-16 00:11:36

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.1/zh-CN/600.manage/600.backup-and-recovery/400.data-backup/100.preparation-before-data-backup.md)  

在进行数据备份前，需要进行一些备份前的准备工作，包括配置备份目的端、备份秘钥等。

## 配置备份目的端

配置备份目的端时，由于系统租户不包含用户数据，是集群管理用的租户，不支持备份恢复，故 `sys` 租户无需配置 `DATA_BACKUP_DEST` 参数。

### 注意事项

配置备份目的端时，要求每个租户的备份路径需要配置为独立的空目录，不同租户不能配置相同的备份路径。

### 操作步骤

1. `sys` 租户或用户租户的租户管理员登录数据库。

   #### 说明

   MySQL 模式的管理员用户为 ` root` 用户，Oracle 模式的管理员用户为 `SYS` 用户。
 2. 配置备份目的端。

   #### 注意

   对于从 OceanBase 数据库 V4.0.x 版本升级到 V4.1.0 版本的场景，版本升级后需要更改备份路径。对于从 OceanBase 数据库 V4.1.x 版本升级到 V4.2.0 版本的场景，版本升级后不需要更改备份路径。

      - 系统租户为指定租户配置备份目的端

       ```sql
       ALTER SYSTEM SET DATA_BACKUP_DEST= 'data_backup_path' TENANT = mysql_tenant;

       ```
      - 用户租户配置本租户的备份目的端

       语句如下：

       ```sql
       ALTER SYSTEM SET DATA_BACKUP_DEST= 'data_backup_path';

       ```

   语句相关说明如下：

      - 该语句可以配置备份路径及源端配置。目前，OceanBase 数据库支持的备份介质为 NFS、阿里云 OSS、AWS S3 以及兼容 S3 协议的对象存储，例如：华为 OBS、Google GCS、腾讯云 COS。部分备份介质可能需要满足一些基本要求才能使用，有关各备份介质的具体要求，参见 [物理备份与恢复概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218106) 中的 **备份介质要求**。
      - 指定备份路径的源端即是指定可以访问该备份路径的节点范围。有关备份路径源端配置的详细介绍及说明，参见 [SET DATA_BACKUP_DEST](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000380648)。

       备份路径的源端配置后，支持修改，具体修改操作，参见 [修改备份路径的源端配置](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002631053)。

   详细设置说明如下。

       阿里云 OSS   NFS   AWS S3   兼容 S3 协议的对象存储

   当使用 OSS 作为备份介质时，除了设置备份路径，您还可以通过 `delete_mode` 参数来配置备份文件的清理模式。`delete_mode` 参数当前支持 `delete` 模式和 `tagging` 模式。如果不显式配置 `delete_mode` 参数，则默认使用 `delete` 模式。

   此外，从 V4.2.1 BP10 版本开始，OSS 还支持通过 `checksum_type` 参数指定校验算法来校验备份数据的完整性，支持的取值为 `md5` 和 `no_checksum`。如果不显式配置 `checksum_type` 参数，则默认值为 `md5`。

   有关 `delete_mode` 参数和 `checksum_type` 参数的详细说明，参见 [SET DATA_BACKUP_DEST](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000380648)。

   #### 注意

   使用对象存储作为备份介质时，对象存储路径的各项参数由 `&` 符号进行分隔，请确保您输入的参数值中仅包含英文字母大小写、数字、`/-_$+=` 以及通配符。如果您输入了上述以外的其他字符，可能会导致设置失败。

      - 使用 OSS 作为备份介质时，系统租户为指定租户 `mysql_tenant` 设置备份路径，配置备份文件的清理模式，同时指定校验算法为 `md5`。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='oss://oceanbase-test-bucket/backup/?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=delete&checksum_type=md5' TENANT = mysql_tenant;

       ```

       如果不希望校验备份数据的完整性，可以将 `checksum_type` 参数设置为 `no_checksum`，示例如下：

       ```shell
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=no_checksum' TENANT = mysql_tenant;

       ```
      - 使用 OSS 作为备份介质时，用户租户为本租户设置备份路径，配置备份文件的清理模式，同时指定校验算法为 `md5`。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='oss://oceanbase-test-bucket/backup/?host=***.aliyun-inc.com&access_id=***&access_key=***&delete_mode=delete&checksum_type=md5';

       ```

   示例中，`oss://` 表示使用 OSS 作为备份介质，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup`，同时使用 `?` 来分隔路径的其他参数，`host` 用于设置存储桶的主机地址，`access_id` 和 `access_key` 用于设置 `OSS` 的访问密钥，清理模式为 `delete`，使用 MD5 算法来校验备份数据的完整性。

   设置 `delete` 模式或 `tagging` 模式后，自动清理备份数据的相关操作请参见 [自动清理过期备份](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218393)。

   #### 注意

   使用 NFS 作为备份介质时，需要注意以下事项：

      - `data_backup_dest` 的值不支持设置为带有问号（?）的字符串。
      - `data_backup_dest` 的值必须设置为绝对路径，保证 OBServer 服务器对 `data_backup_dest` 具有写权限。
      - 必须保证所有 OBServer 服务器都挂载了同一个服务器的 NFS。同时，为保证备份的顺利进行，务必使用本文档中建议的参数挂载 NFS。挂载 NFS 具体操作请参见 [部署 NFS 客户端](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218107)。  
      - 使用 NFS 作为备份介质时，系统租户为指定租户 `mysql_tenant` 设置备份路径的示例如下：

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST= 'file:///data/nfs/backup/data' TENANT = mysql_tenant;

       ```
      - 使用 NFS 作为备份介质时，用户租户为本租户设置备份路径的示例如下：

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='file:///data/nfs/backup/data';

       ```

   示例中，`file://` 表示使用 NFS 作为备份介质，备份路径为 `file:///data/nfs/backup/data`。

   与 OSS 一样，AWS S3 也支持通过 `delete_mode` 参数来配置备份文件的清理模式，配置方法与 OSS 一样。同样，从 V4.2.1 BP10 版本开始，AWS S3 也支持通过 `checksum_type` 参数指定校验算法来校验备份数据的完整性，支持的取值为 `md5` 和 `crc32`。如果不显式配置 `checksum_type` 参数，则默认为值为 `md5`。

   使用 S3 作为备份介质的配置示例如下：

      - 使用 S3 作为备份介质时，系统租户为指定租户 `mysql_tenant` 设置备份路径，配置清理模式为 `delete`，指定校验算法为 `crc32`。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=s3.<region>.amazonaws.com&access_id=****&access_key=****&s3_region=****&delete_mode=delete&checksum_type=crc32' TENANT = mysql_tenant;

       ```
      - 使用 S3 作为备份介质时，用户租户为本租户设置备份路径，配置清理模式为 `delete`，指定校验算法为 `crc32`。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=s3.<region>.amazonaws.com&access_id=****&access_key=****&s3_region=****&delete_mode=delete&checksum_type=crc32';

       ```

   示例中，`s3://` 表示使用 S3 作为备份介质，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/data`，同时使用 `?` 来分隔路径的其他参数，`host` 用于设置 Amazon S3 服务的域名，`access_id` 和 `access_key` 用于设置 AWS 服务的访问密钥，`s3_region` 在使用 S3 作为备份介质时为必选参数，表示 S3 的存储桶所在的地域，清理模式为 `delete`，使用 CRC32 算法来校验备份数据的完整性。

   由于大多数对象存储兼容了 S3 协议，对于兼容 S3 协议并满足 OceanBase 数据库要求（对象存储需要兼容实现了 OceanBase 系统调用的几个 S3 API 的行为）的对象存储均可以作为 OceanBase 数据库的备份介质，并通过访问 S3 的方式来访问兼容的对象存储，例如：OBS、GCS、OSS 等都是通过 S3 协议访问。

   从 V4.2.1 BP10 版本开始，对于通过 S3 协议接入的 OBS、GCS、COS 等对象存储，也支持通过 `checksum_type` 参数指定校验算法来校验备份数据的完整性，仅支持取值为 `md5`。如果不显式配置 `checksum_type` 参数，则默认值为 `md5`。有关 `checksum_type` 参数的详细说明，参见 [SET DATA_BACKUP_DEST](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000380648)。

   #### 注意

      - 使用对象存储作为备份介质时，对象存储路径的各项参数由 `&` 符号进行分隔，请确保您输入的参数值中仅包含英文字母大小写、数字、`/-_$+=` 以及通配符。如果您输入了上述以外的其他字符，可能会导致设置失败。
      - 对于部分兼容 S3 协议的对象存储，可能不支持 AWS S3 SDK 默认的 URL 编码方式，在使用 `s3://` 协议访问时，如果出现 9129、9026 等对象存储相关的错误码，建议通过设置集群级配置项 [ob_storage_s3_url_encode_type](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001408969) 来指定 AWS S3 发送请求时的 URL 编码方式兼容 Rfc3986 标准。详细设置方法可参考下方 **使用 COS 作为备份介质的操作步骤及示例**。  

   **使用 OBS 作为备份介质的配置示例如下**：

      - 使用 OBS 作为备份介质时，系统租户为指定租户 `mysql_tenant` 设置备份路径。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****' TENANT = mysql_tenant;

       ```
      - 使用 OBS 作为备份介质时，用户租户为本租户设置备份路径。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=obs.****.myhuaweicloud.com&access_id=****&access_key=****';

       ```

   上述示例中，`s3://` 表示使用兼容 S3 协议的对象存储作为备份介质，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/data`，同时使用 `?` 来分隔路径的其他参数，`host` 用于设置 OBS 服务的域名，`access_id` 和 `access_key` 用于设置 OBS 服务的访问密钥。

   **使用 GCS 作为备份介质的配置示例如下**：

      - 使用 GCS 作为备份介质时，系统租户为指定租户 `mysql_tenant` 设置备份路径。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=https://storage.googleapis.com&access_id=****&access_key=****' TENANT = mysql_tenant;

       ```
      - 使用 GCS 作为备份介质时，用户租户为本租户设置备份路径。

       ```sql
       obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test-bucket/backup/data?host=https://storage.googleapis.com&access_id=****&access_key=****';

       ```

   上述示例中，`s3://` 使用兼容 S3 协议的对象存储作为备份介质，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/data`，同时使用 `?` 来分隔路径的其他参数，`host` 用于设置 GCS 服务的域名，`access_id` 和 `access_key` 用于设置 GCS 服务的访问密钥。

   **使用 COS 作为备份介质时的操作步骤及示例如下**：

   #### 说明

   该功能从 V4.2.1 BP9 版本开始支持。

      1. 查看集群级配置项 `ob_storage_s3_url_encode_type` 的取值。

        ```shell
        obclient> SHOW PARAMETERS LIKE '%ob_storage_s3_url_encode_type%';

        ```

        查询结果如下：

        ```shell
        +-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
        | zone  | svr_type | svr_ip         | svr_port | name                          | data_type | value   | info                                                                                                                                                                                        | section  | scope   | source  | edit_level        |
        +-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
        | zone1 | observer | 172.xx.xxx.xxx |     2882 | ob_storage_s3_url_encode_type | NULL      | default | Determines the URL encoding method for S3 requests."default": Uses the S3 standard URL encoding method."compliantRfc3986Encoding": Uses URL encoding that adheres to the RFC 3986 standard. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
        +-------+----------+----------------+----------+-------------------------------+-----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
        1 row in set

        ```
      2. 如果取值为 `default`，则修改为 `compliantRfc3986Encoding`。

        ```shell
        obclient> ALTER SYSTEM SET ob_storage_s3_url_encode_type='compliantRfc3986Encoding';

        ```

        有关该配置项的具体信息，参见 [ob_storage_s3_url_encode_type](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001408969)。
      3. 设置备份路径并通过 `delete_mode` 参数来配置备份文件的清理模式。

        使用 COS 作为备份介质时，系统租户为指定租户 `mysql_tenant` 设置备份路径并配置为 `delete` 清理模式的示例如下：

        ```shell
        obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test/backup/data?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***&delete_mode=delete' TENANT = mysql_tenant;

        ```

        使用 COS 作为备份介质时，用户租户为本租户设置备份路径并配置为 `delete` 清理模式的示例如下：

        ```shell
        obclient> ALTER SYSTEM SET DATA_BACKUP_DEST='s3://oceanbase-test/backup/data?host=cos.ap-xxxx.myqcloud.com&access_id=***&access_key=***&delete_mode=delete';

        ```

        示例中，`s3://` 使用兼容 S3 协议的对象存储作为备份介质，存储桶名 `oceanbase-test`，在存储桶中的路径是 `/backup/archive`，同时使用 `?` 来分隔路径的其他参数，`host` 用于设置 COS 的主机地址，即 endpoint（不带存储桶名的地址），`access_id` 和 `access_key` 用于设置 `COS` 的访问密钥，清理模式设置为 `delete`。
 3. 配置成功后，可以通过视图确认详细的配置信息。

   `sys` 租户可以通过 `CDB_OB_BACKUP_PARAMETER` 视图来查看，用户租户可通过 `DBA_OB_BACKUP_PARAMETER` 来查看。

   有关数据备份相关的参数信息及查看方法，参见 [查看数据备份相关参数](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218411)。

### 配置后的注意事项及说明

参数 `data_backup_dest` 设置成功后，默认系统会在配置的目的端所在的目录下创建一个 `format` 文件，用于校验备份目的端的有效性信息，确保目的端内数据的完整性。故，在配置数据备份的目的端 `data_backup_dest` 时，需要注意以下事项：

- 如果 `format` 文件不存在，则要求配置的目的端所在的目录为空，配置项才能设置成功。否则，系统会报 `-9080` 的错误，提示 format 文件不存在。
 - 如果 `format` 文件已存在，则要求 `format` 文件的内容检验通过，配置项才能设置成功。否则，系统会报 `-9081` 的错误，提示 format 文件不匹配，format 文件的内容校验主要是检查集群、租户与备份目的端的介质类型等与当前操作的集群、租户及备份目的端介质类型是否匹配。
 - 在执行备份任务时，如果 `format` 文件不存在或 `format` 文件校验不通过，任务会发起失败。

## 备份秘钥

在进行数据备份前，还需要考虑源租户的加密情况，如果源租户配置了透明加密，则还需要为源租户备份秘钥。

#### 注意

备份秘钥后，在恢复数据前，如果源租户的加密信息触发过秘钥轮转，则需要重新备份源租户的秘钥。

1. `sys` 租户或用户租户的租户管理员登录数据库。
 2. 备份秘钥。

      - 系统租户为指定租户备份秘钥

       ```sql
       ALTER SYSTEM BACKUP KEY TENANT = tenant_name TO 'backup_key_path' ENCRYPTED BY 'password';

       ```
      - 用户租户为本租户备份秘钥

       语句如下：

       ```sql
       ALTER SYSTEM BACKUP KEY TO 'backup_key_path' ENCRYPTED BY 'password';

       ```

   语句中：

      - `backup_key_path`：指定秘钥待备份的路径。该路径由用户自定义，不能与数据备份或日志归档的路径相同。
      - `password`：为秘钥备份路径指定加密密码。

   系统租户将租户 `mysql_tenant` 的秘钥备份到 `file:///data_backup_dest/key` 路径的示例如下：

   ```sql
   obclient [(none)]> ALTER SYSTEM BACKUP KEY TENANT = mysql_tenant TO 'file:///data_backup_dest/key' ENCRYPTED BY '******';

   ```
 3. 配置成功后，可以通过视图查看秘钥备份的路径。

      - 系统租户通过视图 `CDB_OB_BACKUP_STORAGE_INFO` 查看秘钥备份路径

       ```sql
       SELECT * FROM oceanbase.CDB_OB_BACKUP_STORAGE_INFO;

       ```
      - 用户租户通过视图 `DBA_OB_BACKUP_STORAGE_INFO` 查看秘钥备份路径

           MySQL 模式   Oracle 模式

       语句如下：

       ```sql
       SELECT * FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO;

       ```

       语句如下：

       ```sql
       SELECT * FROM SYS.DBA_OB_BACKUP_STORAGE_INFO;

       ```

       有关视图 `CDB_OB_BACKUP_STORAGE_INFO` 和 `DBA_OB_BACKUP_STORAGE_INFO` 中字段的详细说明，请参见 [CDB_OB_BACKUP_STORAGE_INFO](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000219520) 和 [DBA_OB_BACKUP_STORAGE_INFO](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000219577)。

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