
# 数据量很大，如何进行快照备份？
当快照数据量极大，备份耗时超过一天时，可通过以下3种方法优化备份效率：
- 分批备份指定索引：通过控制台手动创建快照，每次指定部分索引，减少单次备份数据量。
- 自定义备份速率：通过控制台修改快照配置，调整最大备份速率，提升单次备份效率。
- 使用自定义快照仓库：通过Kibana创建自定义仓库，灵活配置备份速率和分块参数，实现高效备份。
#### 方式一：分批备份指定索引
默认快照备份的索引范围为所有索引，数据量极大时可通过手动创建快照，每次指定部分索引，分批完成备份。
1. 在Kibana/OpenSearch Dashboards的Dev Tools页面执行以下命令，查询集群中所有索引名称。
   ```
   GET /_cat/indices
   ```
   
2. 根据索引的数据量和业务优先级，将索引分为多个批次。
3. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
4. 在左侧导航栏，选择"集群管理"，根据目标集群选择集群类型，进入集群列表页面。
5. 在集群列表单击目标集群名称，进入集群详情页。
6. 选择"集群快照"页签，开启快照。
7. 在集群快照页面，单击"手动创建快照"，在弹窗中完成备份策略配置。
   表1手动创建快照 
   | 参数   | 说明                                                                            |
   |:---|:---|
   | 快照名称 | 设置快照名称。可以使用"snapshot-batch1"、"snapshot-batch2"等命名方式区分批次。                      |
   | 索引   | 指定本次备份的索引名称。 如果不填写，则默认备份集群中所有索引。 |
   | 快照描述 | 添加快照描述信息。                                                                     |
      
   
8. 配置完成后，单击"确定"，开始创建快照。
9. 在集群快照任务列表中，当"快照任务状态"为"可用"时，表示当前批次备份完成。
   单击快照名称左侧的展开图标，查看备份的分片和索引信息，确认数据是否备份成功。
   
10. 重复[7]-[9]，直到所有索引分批次备份完成。
 
#### 方式二：自定义备份速率
通过修改快照配置，调整最大备份速率参数，提升每个节点的备份速度。
![](https://support.huaweicloud.com/trouble-css/public_sys-resources/caution_3.0-zh-cn.png)
提高备份速率会增加集群CPU和磁盘IO负载，建议在业务低峰期执行，并在高峰期前降低速率。
1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
2. 在左侧导航栏，选择"集群管理"，根据目标集群选择集群类型，进入集群列表页面。
3. 在集群列表单击目标集群名称，进入集群详情页。
4. 选择"集群快照"页签，单击"修改配置"提升最大备份速率。
   表2修改备份速率 
   | 参数         | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   |:---|:---|
   | 最大备份速率（每秒） | 配置每个节点的最大备份速率，当集群快照的备份速率超过设定值时将触发限流机制，防止速率太大导致资源占用过高，影响集群稳定性。 **取值格式：**数字（0\~9999）+单位（KB、MB、GB、TB、PB、B） **默认取值：**40MB 当填写0MB时，表示不限速。当备份速率过大时，可能导致集群资源占用过高，稳定性下降，建议谨慎配置。 实际备份速率可能因OBS性能、磁盘IO等限制而无法达到设定值。                                                                                                                                                                 |
   | 最大恢复速率（每秒） | 配置每个节点的最大恢复速率，当集群快照的恢复速率超过设定值时将触发限流机制，防止速率太大导致资源占用过高，影响集群稳定性。 **取值格式：**数字（0\~9999）+单位（KB、MB、GB、TB、PB、B） **默认取值：**Elasticsearch 7.6.2及之前版本缺省值为40MB，OpenSearch及高于Elasticsearch 7.6.2版本缺省值为0MB（不限速）。 当恢复速率过大时，可能导致集群资源占用过高，稳定性下降，建议谨慎配置。 OpenSearch及高于Elasticsearch 7.6.2版本的实际限流值还受"indices.recovery.max_bytes_per_sec"参数影响，取两者中的较小值。且实际恢复速率可能因OBS性能、磁盘IO等限制而无法达到设定值。 |
      
   
5. 配置完成后，单击"确定"，保存修改。
6. 修改配置后，手动创建快照或等待自动快照触发即可，备份将按照新的速率执行。
 
#### 方式三：使用自定义快照仓库
除CSS服务提供的repo_auto仓库外，可通过创建自定义快照仓库，灵活配置备份速率、分块大小等参数，实现高效备份。
1. 登录Kibana/OpenSearch Dashboards的Dev Tools页面。
2. 创建自定义快照仓库。
   ```
   PUT _snapshot/my_backup
   {
     "type": "obs",
     "settings": {
       "bucket": "<OBS桶名称>",
       "base_path": "<备份路径>",
       "chunk_size": "2g",
       "endpoint": "obs.<Region名称>.example.com",
       "region": "<Region名称>",
       "compress": "true",
       "access_key": "<AK>",
       "secret_key": "<SK>",
       "max_restore_bytes_per_sec": "100mb",
       "max_snapshot_bytes_per_sec": "100mb"
     }
   }
   ```
   表3自定义仓库参数说明 
   | 参数                         | 是否必填 | 说明                                                                                          |
   |:---|:---|:---|
   | bucket                     | 是    | OBS桶名称，桶必须与集群在同一区域，存储类别为标准存储。                                                               |
   | base_path                  | 是    | 快照在OBS桶中的存放路径，不能以"/"或"."开头。                                                                 |
   | chunk_size                 | 否    | 备份数据分块大小，缺省值为2g。数据量大时可保持缺省值。                                                                |
   | endpoint                   | 是    | OBS域名地址，格式为"obs.\<Region名称\>.example.com"。                                                  |
   | region                     | 是    | 集群所在区域名称。                                                                                   |
   | compress                   | 否    | 是否启用数据压缩，缺省值为true。压缩可减少OBS存储空间占用。                                                           |
   | access_key                 | 是    | OBS访问密钥AK，获取方法请参见[如何获取访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html)。 |
   | secret_key                 | 是    | OBS访问密钥SK，获取方法请参见[如何获取访问密钥AK/SK](https://support.huaweicloud.com/iam_faq/iam_01_0618.html)。 |
   | max_snapshot_bytes_per_sec | 否    | 每个节点的最大备份速率。业务低峰期可适当提高（如100MB），高峰期建议降低。                                                     |
   | max_restore_bytes_per_sec  | 否    | 每个节点的最大恢复速率，可根据集群性能调整。                                                                      |
      
   
3. 使用自定义仓库创建快照。
   ```
   PUT _snapshot/my_backup/<快照名称>
   {
     "indices": "*",
     "ignore_unavailable": true,
     "include_global_state": false
   }
   ```
   表4创建快照参数说明 
   | 参数                   | 是否必填 | 说明                                                                                                                                                                                                                                                                                                                                                              |
   |:---|:---|:---|
   | \<快照名称\>             | 是    | 快照名称，建议使用"snapshot-batch1"等命名方式区分批次。                                                                                                                                                                                                                                                                                                                            |
   | indices              | 否    | 指定备份的索引名称，多个索引用英文逗号分隔，支持通配符"\*"。缺省值为"\*"（备份所有索引）。                                                                                                                                                                                                                                                                                                               |
   | ignore_unavailable   | 否    | 当指定索引不存在时是否忽略，缺省值为false。 - true表示忽略并继续备份其他索引。  - false表示索引不存在时备份失败。   |
   | include_global_state | 否    | 是否保存集群全局状态，缺省值为false，建议保持false避免全局状态干扰恢复。                                                                                                                                                                                                                                                                                                                       |
      
   
4. 查询快照状态。
   ```
   GET _snapshot/my_backup/<快照名称>/_status
   ```
   等待返回结果中"state"字段为"SUCCESS"表示备份完成。
   
 
