如何借助es的snapshot跨集群迁移部分索引

1.创建源集群的快照仓库

使用fs方式,首先需要在所有节点挂载文件系统

然后在elasticsearch.yaml中新增配置path.repo

必须确保对应目录具备读写权限

复制代码
path.repo: /mount/backups

修改配置重启完之后,开始创建快照仓库

复制代码
PUT /_snapshot/my_repository
{
  "type": "fs",
  "settings": {
    "location": "/mount/backups/my_fs_backup_location"
  }
}

此时如果报超时可以不用管着先,查一下仓库是否创建成功

GET 10.105.100.71:9200/_snapshot

2.创建快照

对增量的索引批量创建快照

复制代码
PUT /_snapshot/my_repository/snapshot_1
{
  "indices": "index_1",
  "ignore_unavailable": true,
  "include_global_state": false
}

3.恢复快照到目标集群

1)在迁移索引数据开始之前,需要先在目标集群先创建快照仓库,同步骤1

2)因为开发环境新搭了一套skywalking,它自己会每日生成新的索引,需要先删除同名索引,否则会恢复失败

复制代码
DELETE 10.106.100.117:9200/sw891_zipkin_span-20230607

#可以考虑直接批量清除
#!/bin/bash
time=$(date -d '-3days' +'%Y.%m.%d')
curl -XDELETE -u elastic:changeme http://localhost:9200/*-${time}

3)开始进行快照恢复

复制代码
POST /_snapshot/my_repository/snapshot_1/_restore

需要在master节点执行恢复指令

4.删除快照

复制代码
DELETE /_snapshot/my_repository/snapshot_1

辅助查询

查看集群状态

curl localhost:9200/_cat/health?v

curl localhost:9200/_cat/nodes?v

curl localhost:9200/_cluster/allocation/explain?pretty

curl localhost:9200/_cat/recovery?v | grep -v done

查看索引

curl localhost:9200/_cat/indices | grep 索引ID

curl localhost:9200/_cat/shards/索引名

关闭索引

curl -XPOST localhost:9200/索引名/_close

查看索引具体状态

curl localhost:9200/_cat/shards/索引名? h=index,shard,prirep,state,unassigned.reason

查看快照状态

curl localhost:9200/_snapshot/backup_test/snapshot_1/_status?pretty

查看恢复状态

curl localhost:9200/index1/_recovery?pretty

删除快照

curl -XDELETE localhost:9200/_snapshot/backup_test/snapshot_1

查看仓库信息

GET /_snapshot/my_backup

当前所有仓库信息

GET /_snapshot

GET /_snapshot/_all

删除仓库信息:仅仅删除index,不会删除hdfs数据

DELETE /_snapshot/my_backup

查询快照

GET /_snapshot/my_backup/snapshot_1 //查询指定快照

GET /snapshot/my_backup/snapshot*,otherSnapshot //支持通配符

GET /_snapshot/my_backup/_all //查询所有快照

删除一个快照:仅删除引用,未删除hdfs数据

DELETE /_snapshot/my_backup/snapshot_1

相关推荐
xbgRS1 小时前
Elasticsearch的查询
elasticsearch
Elasticsearch5 小时前
使用 Lucene 搜索你的 Bean —— Highlighting
elasticsearch
Elasticsearch5 小时前
使用 Lucene 搜索你的 Bean —— Elasticsearch
elasticsearch
Elasticsearch10 小时前
最好的 LLM 只有 59% 的时间能写出正确的 Elasticsearch ES|QL。以下是另外 41% 出错的原因
elasticsearch
垚垚学技术_聚焦云原生10 小时前
Ansible Role 生产环境标准目录结构与规范化实践
java·elasticsearch·ansible
小林ixn10 小时前
从 MySQL 的 LIKE 到 ES 倒排索引:一次把全文检索和混合检索讲透
sql·elasticsearch·全文检索·agent·关键词
MayBaymax11 小时前
ES 基础总结
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客11 小时前
两个依赖和一个配置块:通过 Prometheus 远程写入将 Spring Boot 指标发送到 Elasticsearch
大数据·数据库·spring boot·elasticsearch·搜索引擎·全文检索·prometheus
SelectDB技术团队12 小时前
ELK 太占磁盘、ES 总报写入拒绝:从归因到可执行的优化清单
大数据·clickhouse·elk·elasticsearch·全文检索·复杂查询·实时更新
frjc21 小时前
数据库选型:如何从众多数据库中选出最理想的那一个
redis·mysql·clickhouse·elasticsearch