---
title: "日志归档前准备 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 日志归档前准备 本节主要介绍日志归档前的准备工作。 配置归档并发度（可选） 开启归档模式前，您可以通过配置日志归档的并发度来提高租户的日志归档速度。 sys 租户或用户租户的租户管理员登录到数据库。 选择合适的语句，设置配置项 log_archive_concurrency 。 租户级配置项 log_archive_…
---
切换语言

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

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

# 日志归档前准备

更新时间：2026-06-11 19:04:35

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/600.manage/600.backup-and-recovery/300.log-archive/200.preparation-before-log-archive.md)  

本节主要介绍日志归档前的准备工作。

## 配置归档并发度（可选）

开启归档模式前，您可以通过配置日志归档的并发度来提高租户的日志归档速度。

1. `sys` 租户或用户租户的租户管理员登录到数据库。
 2. 选择合适的语句，设置配置项 `log_archive_concurrency`。

   租户级配置项 `log_archive_concurrency` 用于配置日志归档总的工作线程数量。该配置项为动态生效，不需要重启 OBServer 节点。该配置项的取值范围为 [0, 100]，默认值为 `0`，表示使用 OceanBase 数据库自适应的日志归档并行度。建议使用默认值。

   #### 注意

   对于小规模租户（CPU 小于或等于 4C 的租户），建议使用默认值，不要调整该配置项的值。

   设置方法如下：

      - `sys` 租户调整指定租户的日志归档并发度

       ```sql
       ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = mysql_tenant;

       ```
      - `sys` 租户调整所有租户的日志归档并发度

       ```sql
       ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = all_user;

       ```

       或者

       ```sql
       ALTER SYSTEM SET log_archive_concurrency = 10 TENANT = all;

       ```

       #### 说明

       OceanBase 数据库从 V4.2.1 版本开始，`TENANT = all_user` 与 `TENANT = all`语义相同，在需要生效范围为所有用户租户时，推荐使用 `TENANT = all_user`，后续 `TENANT = all` 将废弃不再使用。
      - 用户租户调整本租户的日志归档并发度

       ```sql
       ALTER SYSTEM SET log_archive_concurrency = 10;

       ```

   有关配置项 `log_archive_concurrency` 的更多信息，请参见 [log_archive_concurrency](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685315)。

## 配置归档目的端

在开始日志归档任务前，您需要使用 `ALTER SYSTEM` 命令配置 `LOG_ARCHIVE_DEST` 参数。由于系统租户不包含用户数据，是集群管理用的租户，不支持备份恢复，故 `sys` 租户无需配置归档目的端。

配置归档目的端的操作主要是设置 `LOCATION`、`BINDING` 和 `PIECE_SWITCH_INTERVAL` 属性。

### 注意事项

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

### 操作步骤

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

   #### 说明

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

      - 系统租户为指定租户配置归档目的端

       ```sql
       ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=archive_path [BINDING=archive_mode] [PIECE_SWITCH_INTERVAL=piece_switch_interval]' TENANT = tenant_name;

       ```
      - 用户租户配置本租户的归档目的端

       ```sql
       ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=archive_path [BINDING=archive_mode] [PIECE_SWITCH_INTERVAL=piece_switch_interval]';

       ```  

   #### 注意

   对于从 OceanBase 数据库 V4.0.x 版本升级到 V4.1.0 版本的场景，版本升级后需要更改归档路径。对于从 OceanBase 数据库 V4.1.x 版本升级到 V4.2.x 版本的场景，版本升级后不需要更改归档路径。此外，从 OceanBase 数据库 V4.1.x 版本升级到 V4.2.x 版本时，支持升级期间进行日志归档。

   详细配置说明如下：

      - 配置 `LOCATION` (必选)

       `LOCATION` 属性用于指定归档路径，目前 OceanBase 数据库支持的归档介质为 NFS、阿里云 OSS、Azure Blob、AWS S3 以及兼容 S3 协议的对象存储，例如：华为 OBS、Google GCS、腾讯云 COS。部分归档介质可能需要满足一些基本要求才能使用，有关各归档介质的具体要求，参见 [物理备份与恢复概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005681990) 中的 **备份介质要求**。

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

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

       此外，OSS 还支持通过 `checksum_type` 参数指定校验算法来校验归档文件的完整性，支持的取值为 `md5` 和 `no_checksum`。如果不显式配置 `checksum_type` 参数，则默认值为 `md5`。

       同时，OceanBase 数据库还支持使用已配置了合规保留策略的阿里云 OSS Bucket 作为归档路径。在配置归档路径时，可以通过 `enable_worm` 参数来指定 OceanBase 数据库是否按照 Bucket 的保留策略（WORM 策略）对该路径执行写入及删除操作。该参数支持的取值为 `true` 和 `false`。如果不显式配置 `enable_worm` 参数，则默认为 `false`。设置 `enable_worm=true` 时要求同时显式配置 `checksum_type=md5`。该参数一旦设置后，不支持变更。

       #### 注意

       OceanBase 数据库当前不会替代您设置合规保留策略，请在设置归档路径前确保 OSS Bucket 已正确设置保留策略（WORM 策略）并锁定。

       有关各参数的详细说明，参见 [SET LOG_ARCHIVE_DEST](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686268)。

       #### 注意

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

       示例如下：

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

             ```sql
             obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?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 LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=delete&checksum_type=no_checksum' TENANT = mysql_tenant;

             ```
            - 使用 OSS 作为归档介质时，系统租户为指定租户 `mysql_tenant` 设置归档路径，配置清理模式为 `tagging`，指定以 WORM 支持的方式写入和删除 Object，同时指定校验算法为 `md5`。

             #### 注意

                    - OceanBase 数据库当前不会替代您设置合规保留策略，请在设置归档路径前确保 OSS Bucket 已正确设置保留策略（WORM 策略）并锁定。
                    - 使用配置了 WORM 策略的 Bucket 作为归档路径时，推荐清理模式使用 `tagging` 模式。  

             ```shell
             obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=oss://oceanbase-test-bucket/backup/archive?host=****.aliyun-inc.com&access_id=****&access_key=****&delete_mode=tagging&checksum_type=md5&enable_worm=true' TENANT = mysql_tenant;

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

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

             ```

       示例中，`oss://` 表示使用 OSS 作为归档介质类型，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/archive`，同时使用 `?` 来分隔路径与参数，参数之间使用 `&` 分隔。`host` 用于设置存储桶的主机地址，`access_id` 和 `access_key` 用于设置 `OSS` 的访问密钥，清理模式为 `delete`，并使用 MD5 算法校验归档文件的完整性。`enable_worm=true` 表示系统将按照 WORM 的规范执行写入与删除操作。需要注意的是，OceanBase 数据库当前不会替代您设置合规保留策略，请在设置归档路径前确保 OSS Bucket 已正确设置保留策略（WORM 策略）并锁定。

       #### 注意

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

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

       使用 NFS 作为归档介质时，系统租户为指定租户 `mysql_tenant` 设置归档路径的示例如下：

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

       ```

       使用 NFS 作为归档介质时，用户租户为本租户设置归档路径的示例如下：

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

       ```

       示例中，`file://` 表示使用 NFS 作为归档介质类型，归档路径为 `/data/nfs/backup/archive`。

       与 OSS 一样，AWS S3 也支持通过 `delete_mode` 参数来配置归档文件的清理模式，配置方法与 OSS 一样。同样，AWS S3 也支持通过 `checksum_type` 参数指定校验算法来校验归档文件的完整性，支持指定的取值为 `md5` 和 `crc32`。如果不显式配置 `checksum_type` 参数，则默认值为 `md5`。

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

       使用 S3 作为归档介质的配置示例如下：

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

             ```sql
             obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?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 LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test-bucket/backup/archive?host=s3.<region>.amazonaws.com&access_id=******&access_key=******&s3_region=******&delete_mode=delete&checksum_type=crc32';

             ```

       上述示例中，`s3://` 表示使用 AWS S3 作为归档介质类型，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/archive`，同时使用 `?` 来分隔路径与参数，参数之间使用 `&` 分隔。`host` 用于设置 Amazon S3 服务的域名，`access_id` 和 `access_key` 用于设置 AWS 服务的访问密钥，`s3_region` 在使用 S3 作为归档介质时为必选参数，表示 S3 的存储桶所在的地域，清理模式为 `delete`，使用 CRC32 算法校验归档文件的完整性。

       有关 AWS S3 路径格式的详细说明，参见 [附：AWS S3 路径格式说明](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005681989)。

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

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

       #### 注意

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

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

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

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

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

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

             ```

       上述示例中，`s3://` 表示使用 S3 协议访问归档目的端，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/archive`，同时使用 `?` 来分隔路径与参数，参数之间使用 `&` 分隔。`host` 用于设置 OBS 服务的域名，`access_id` 和 `access_key` 用于设置 OBS 服务的访问密钥。

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

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

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

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

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

             ```

       上述示例中，`s3://` 表示使用 S3 协议访问归档目的端，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/archive`，同时使用 `?` 来分隔路径与参数，参数之间使用 `&` 分隔。`host` 用于设置 GCS 服务的域名，`access_id` 和 `access_key` 用于设置 GCS 服务的访问密钥。

       **使用 COS 作为归档介质的操作步骤及示例如下**：

            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-1000000005685646)。
            3. 设置归档路径并通过 `delete_mode` 参数来配置归档文件的清理模式。

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

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

              ```

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

              ```shell
              obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=s3://oceanbase-test/backup/archive?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`。

              #### 注意

              在归档运行期间，不支持切换归档所使用的访问协议。例如，不支持从 S3 切换到 OSS 或从 OSS 切换到 S3。

       与 OSS 一样，Azure Blob 也支持 `delete_mode` 参数和 `checksum_type` 参数。其中，`delete_mode` 参数用于配置归档文件的清理模式，如果不显式配置 `delete_mode` 参数，则默认使用 `delete` 模式。`checksum_type` 参数用于指定校验算法来校验归档文件的完整性，支持的取值为 `md5` 和 `no_checksum`。如果不显式配置 `checksum_type` 参数，则默认值为 `md5`。

       更多参数的详细说明，参见 [SET LOG_ARCHIVE_DEST](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686268)。

       示例如下：

       #### 注意

            - 使用对象存储作为归档介质时，对象存储路径的各项参数由 `&` 符号进行分隔，请确保您输入的参数值中仅包含英文字母大小写、数字、`/-_$+=` 以及通配符。如果您输入了上述以外的其他字符，可能会导致设置失败。
            - 在使用 Azure Blob 作为归档介质时，要求 `host` 参数的前缀必须指定为 `http://` 或 `https://`。同时，由于 Azure Blob 默认开启了安全传输，默认是通过 `https://` 来访问，如果需要通过 `http://` 来访问，需要关闭 Azure Blob 的安全传输选项。关闭 Azure Blob 安全传输选项的详细操作，参见 [Azure Blob 官网文档](https://learn.microsoft.com/en-us/azure/storage/common/storage-require-secure-transfer?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fazure%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json)。  
            - 使用 Azure Blob 作为归档介质时，系统租户为指定租户 `mysql_tenant` 设置归档路径，配置清理模式为 `delete`，同时指定校验算法为 `md5`。

             ```shell
             obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=azblob://oceanbase-test-bucket/backup/archive?host=http://****.blob.core.windows.net&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5' TENANT = mysql_tenant;

             ```
            - 使用 Azure Blob 作为归档介质时，用户租户为本租户设置归档路径，配置清理模式为 `delete`，同时指定校验算法为 `md5`。

             ```shell
             obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=azblob://oceanbase-test-bucket/backup/archive?host=http://****.blob.core.windows.net&access_id=****&access_key=****&delete_mode=delete&checksum_type=md5';

             ```

       示例中，`azblob://` 表示使用 Azure Blob 作为归档介质类型，存储桶名 `oceanbase-test-bucket`，在存储桶中的路径是 `/backup/archive`，同时使用 `?` 来分隔路径与参数，参数之间使用 `&` 分隔。`host` 为存储桶的主机地址，可通过容器属性或存储账户的连接串拼接得到。`access_id` 为存储账户名称，`access_key` 为 Azure Blob 的访问密钥，清理模式为 `delete`，并使用 MD5 算法校验归档文件的完整性。
      - 配置 `BINDING` 属性(可选)

       `BINDING` 属性用于设置归档和业务的优先模式。目前支持 `Optional` 模式和 `Mandatory` 模式。如果不配置，默认为 `Optional` 模式。

            - `Optional` 模式表示以用户业务优先。在该模式下，当归档（日志归档）速度跟不上日志生成的速度时，日志有可能来不及归档就被回收了，然后发生断流。
            - `Mandatory` 模式表示以归档优先。在该模式下如果归档跟不上用户数据的写入，可能会导致用户无法写入。

       使用 NFS 作为归档介质时，系统租户为指定租户 `mysql_tenant` 配置归档路径并设置 `BINDING` 属性的示例如下：

       ```sql
       obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional' TENANT = mysql_tenant;

       ```

       使用 NFS 作为归档介质时，用户租户为本租户配置归档路径并设置 `BINDING` 属性的示例如下：

       ```sql
       obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional';

       ```
      - 配置 `PIECE_SWITCH_INTERVAL` 属性 (可选)

       `PIECE_SWITCH_INTERVAL` 属性用于配置 `piece` 的切换周期，取值范围为 `[1d, 7d]`。如果不设置，默认为 `1d`。

       使用 NFS 作为归档介质时，系统租户为指定租户 `mysql_tenant` 配置归档路径并设置每隔一天切分一个日志 `piece` 的示例如下：

       ```sql
       obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d' TENANT = mysql_tenant;

       ```

       使用 NFS 作为归档介质时，用户租户为本租户配置归档路径并设置每隔一天切分一个日志 `piece` 的示例如下：

       ```sql
       obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///data/nfs/backup/archive BINDING=Optional PIECE_SWITCH_INTERVAL=1d';

       ```
 3. 配置成功后，您可以通过视图查询详细的参数设置信息。

   `sys` 租户可以通过 `CDB_OB_ARCHIVE_DEST` 视图来查看参数设置信息；用户租户可通过 `DBA_OB_ARCHIVE_DEST` 视图来查看参数设置信息。查看参数设置的详细操作，请参见 [查看归档参数](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682406)。

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

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

      - 如果 `format` 文件不存在，则要求配置的目的端所在的目录为空，配置项才能设置成功。否则，系统会报 `-9080` 的错误，提示 format 文件不存在。
      - 如果 `format` 文件已存在，则要求 `format` 文件的内容检验通过，配置项才能设置成功。否则，系统会报 `-9081` 的错误，提示 format 文件不匹配，format 文件的内容校验主要是检查集群、租户与备份目的端类型等与当前操作的集群、租户及备份目的端类型是否匹配。
      - 在执行备份任务时，如果 `format` 文件不存在或 `format` 文件校验不通过，任务会发起失败。
 2. 归档目的端配置成功后，不支持增量配置。例如，假设 NFS 下归档路径 `/data/nfs/backup/archive` 配置的 `BINDING` 属性为 `Mandatory`，`PIECE_SWITCH_INTERVAL` 属性为 `1d`。若需要更新 `PIECE_SWITCH_INTERVAL` 为 `2d`，但保留 `BINDING` 属性的配置 `Mandatory`，您仍然需要在命令中指定其他属性的值，否则未指定的属性将使用默认值。

   您需要重新执行以下语句进行修改。

      - 系统租户修改指定租户

       ```sql
       obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST = 'LOCATION=file:///data/nfs/backup/archive BINDING=Mandatory PIECE_SWITCH_INTERVAL=2d' TENANT = mysql_tenant;

       ```
      - 用户租户修改本租户

       ```sql
       obclient> ALTER SYSTEM SET LOG_ARCHIVE_DEST = 'LOCATION=file:///data/nfs/backup/archive BINDING=Mandatory PIECE_SWITCH_INTERVAL=2d';

       ```
 3. 归档目的端设置成功后，如果用户因安全或其他原因，更改了对象存储的密钥信息，需要为已设置的归档路径更新 `access_id` 和 `access_key` 信息，具体操作参见 [更新对象存储的密钥信息](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005681978)。

## （可选）配置归档延迟

OceanBase 数据库使用租户级配置项 `archive_lag_target` 来控制租户日志归档的延迟时间，该配置项支持以毫秒(ms)、秒（s）、分（m）、小时（h）为单位，默认为 2 分钟，用于指定前后两次归档 IO 的最大间隔时间，确保在线日志能及时地被归档出去，从而减少数据损失的风险。

OceanBase 数据库的归档以日志流为单位，如果当前日志流有日志写入，并且距离该日志流上次归档的时间超过了配置项 `archive_lag_target` 所指定的时间间隔，该日志流就会触发一次归档动作，将未归档的日志都归档出去。

例如，如果配置项被设置为 `archive_lag_target='120s'`（即 2 分钟），则每一个日志流会尝试每 2 分钟进行一次归档动作（除非其他条件被满足，例如，日志归档的缓存聚合 Buffer 被写满），让该日志流的本次归档动作距离上次归档时间小于 2 分钟。需要注意的是，当配置项 `archive_lag_target` 的值设置为 0 时，将会达到一个实时归档的效果。

有关配置项 `archive_lag_target` 的更多说明，请参见 [archive_lag_target](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685334)。

### 前提条件

修改配置项 `archive_lag_target` 的值时，请确认已完成归档目的端的配置。如果未配置归档目的端，则在修改配置项 `archive_lag_target` 的值时，系统会提示 `log_archive_dest has not been set, set archive_lag_target is not allowed` 的信息。

### 注意事项

- 对于归档介质为 OSS/NFS 的场景，配置项 `archive_lag_target` 的值可以设置为取值范围内的任意值；对于归档介质为 S3 及兼容 S3 协议的其他对象存储的场景，配置项 `archive_lag_target` 的值不能小于 `60s`，小于 `60s` 系统将会报错。
 - 建议将配置项 `archive_lag_target` 设置为一个合理的值，以免过于频繁的 IO 影响系统性能，特别是使用对象存储的情况下。同时，过高的值也可能无法满足数据恢复的时效性，因此需要根据具体的业务需求和归档介质的性能来权衡 RPO。

### 配置方法

1. `sys` 租户或用户租户的租户管理员登录到数据库。
 2. 根据实际情况，选择合适的语句，配置归档延迟。

   配置方法如下：

      - `sys` 租户为指定租户配置归档延迟时间

       ```shell
       obclient> ALTER SYSTEM SET archive_lag_target = '120s' TENANT = mysql_tenant;

       ```

       #### 注意

       在配置 `archive_lag_target` 参数时，不支持 sys 租户通过 `TENANT = all_user` 来指定所有用户租户。
      - 用户租户为本租户配置归档延迟时间

       ```shell
       obclient> ALTER SYSTEM SET archive_lag_target = '120s';

       ```

## 相关文档

- [查看归档参数](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682406)
 - [查看归档进度](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682412)
 - [查看归档历史](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682411)

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