elasticsearch 备份恢复步骤

1、查看仓库,

GET _snapshot

返回, 仓库名是aliyun_auto_snapshot

{
  "aliyun_auto_snapshot" : {
    "type" : "oss",
    "settings" : {
      "compress" : "true",
      "base_path" : "fb632b-1241148226163200/xxx",
      "endpoint" : "http://oss-cn-shenzhen-internal.aliyuncs.com"
    }
  }
}

2、查看当前备份文件

GET /_cat/snapshots/aliyun_auto_snapshot?v

返回

id                                      status start_epoch start_time end_epoch  end_time duration indices successful_shards failed_shards total_shards
es-xxx_20241206030009 SUCCESS 1733425210  19:00:10   1733425218 19:00:18     7.9s       4                13             0           13
es-xxx_20241207030008 SUCCESS 1733511609  19:00:09   1733511615 19:00:15     6.6s       4   

3、备份最新数据。排除系统索引。

PUT _snapshot/aliyun_auto_snapshot/aliyun_auto_snapshot_2024012121614
{"indices":"*,-.*"}

4、查看备份

GET /_cat/snapshots/aliyun_auto_snapshot?v

5、恢复备份的方法,恢复之前关闭索引(如果是增量恢复),或者清空索引数据。

POST _snapshot/aliyun_auto_snapshot/aliyun_auto_snapshot_2024012121614/_restore 
{"indices":"*,-.*","ignore_unavailable":"true"}

如果是增量恢复关闭索引的方法

POST *,-.*/_close  

如果需要把备份备份到自定义仓库中,以oss为例子,创建方法


PUT _snapshot/my_es_snapshot_from_oss/
{
    "type": "oss",
    "settings": {
        "endpoint": "oss-cn-shenzhen-internal.aliyuncs.com",
        "access_key_id": "xxx",
        "secret_access_key": "xxx",
        "bucket": "es-snapshot-qianyi",
        "compress": true,
        "chunk_size": "500mb",
        "base_path": "my_es_snapshot_from_oss/"
    }
}

加速快照恢复的方法

GET _cluster/settings?flat_settings&include_defaults


PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.node_concurrent_recoveries": "4",
    "indices.recovery.max_bytes_per_sec": "100mb"
  }
}
修改分片迁移的配置,以便在rebalance或者recovery时更快恢复集群。

indices.recovery.max_bytes_per_sec:恢复时单个节点的总进出流量限制。(默认40mb)

indices.recovery.max_concurrent_file_chunks:恢复时可并发拷贝的文件块数量。(默认2)

cluster.routing.allocation.cluster_concurrent_rebalance:整个集群范围内允许同时rebalance的shard数。(默认2)

cluster.routing.allocation.node_initial_primaries_recoveries:单个节点主分片并行恢复的数据。(默认4)

cluster.routing.allocation.node_concurrent_recoveries:单个节点允许同时接收、传出恢复的shard数,(默认2)
### Elasticsearch 备份恢复方法 #### 配置备份路径 为了能够创建快照,需先在`elasticsearch.yml`配置文件中定义用于存储快照的位置。通过向该文件追加如下设置可以完成此操作: ```bash echo 'path.repo: ["/home/esbackup"]' >> /etc/elasticsearch/elasticsearch.yml ``` 这一步骤确保了Elasticsearch知道在哪里保存或读取备份数据[^2]。 #### 创建仓库 一旦设置了备份路径,在实际执行备份之前还需要注册一个快照仓库。可通过发送HTTP请求给Elasticsearch来实现这一点: ```json PUT _snapshot/my_backup_repo { "type": "fs", "settings": { "location": "/home/esbackup" } } ``` 上述命令指定了名为`my_backup_repo`的新仓库,并将其类型设为文件系统(`fs`),同时关联到早前设定的本地目录位置[^1]。 #### 执行快照备份 有了准备好的仓库之后,就可以开始创建索引或者整个集群状态的快照了。下面是一个简单的例子,它会针对所有开放的索引创建一次性的全量快照: ```json POST _snapshot/my_backup_repo/snapshot_1?wait_for_completion=true ``` 参数`wait_for_completion=true`意味着API调用将会一直等待直到快照过程结束才返回响应结果。 #### 检查快照状态 要确认刚刚发起的操作进展顺利否,可利用_repositories端点查询特定快照的信息: ```json GET _snapshot/my_backup_repo/snapshot_1 ``` 此外,如果想要获取更详细的关于某个具体索引恢复状况的数据,则可以用_recovery接口进行检查: ```json GET restored_index_3/_recovery ``` 对于希望了解整个集群内各索引恢复详情的情况,只需省略掉具体的索引名称部分即可获得全面视图[^3]。 #### 进行快照恢复 当需要从现有快照中恢复数据时,同样也是通过RESTful风格的API来进行处理。这里给出的是最基础形式下的恢复指令,适用于大多数场景,默认情况下会选择覆盖同名的目标索引而不做任何额外调整: ```json POST _snapshot/my_backup_repo/snapshot_1/_restore ``` 经过一段时间后,应该能看到所选索引被成功重建并填充回原始内容之中;此时再进入Kibana界面下的索引管理页面验证,应当能观察到各项统计指标均恢复正常水平[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值