编程技术分享平台

网站首页 > 技术教程 正文

ElasticSearch Snapshot And Restore

xnh888 2024-11-11 14:45:39 技术教程 43 ℃ 0 评论

#头条创作挑战赛#

本文主要介绍elasticsearch中快照的备份与还原,elasticsearch版本7.4.0

因为对于elasticsearch的快照与恢复是建立在elasticsearch有设置快照的存储位置的,所以下面我们先设置一下elasticsearch中快照的存储位置

一、Elasticsearch 配置快照存储位置

配置快照存储位置,elasticsearch.yml 文件中加入如下配置

path.repo: ["my_backup_location"]

由于本人测试 使用的docker-compose方式启动的elasticsearch,所以我要修改的是docker-compose.yml,完整内容如下

version: '2.2'
services:
  cerebro:
    image: lmenezes/cerebro:0.8.3
    container_name: cerebro
    ports:
     - "9000:9000"
    command:
     - -Dhosts.0.host=http://elasticsearch:9200
    networks:
     - es74net
  kibana:
    image: docker.elastic.co/kibana/kibana:7.4.0
    container_name: kibana74
    environment:
      - I18N_LOCALE=zh-CN
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
    ports:
      - "5601:5601"
    networks:
      - es74net
  elasticsearch:
    image: elasticsearch:7.4.0
    container_name: es74
    environment:
      - cluster.name=docker-cluster
      - node.name=es74
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es74
      - cluster.initial_master_nodes=es74
      - path.repo=['my_backup_location']
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es74data1:/usr/share/elasticsearch/data
      - my_backup_locaton:/usr/share/elasticsearch/my_backup_location
    ports:
      - 9200:9200
    networks:
      - es74net


volumes:
  es74data1:
    driver: local


networks:
  es74net:
    driver: bridge

配置修改完成,重启elasticsearh成功之后就可以愉快的进行快照与恢复了。

对于集群中的快照操作可以参考下elasticsearch官网给我们的介绍,大体意思就是其中一个集群节点设置写权限,然后其他集群节点设置只读权限。

If you register same snapshot repository with multiple clusters, only one cluster should have write access to the repository. All other clusters connected to that repository should set the repository to readonly mode.

https://www.elastic.co/guide/en/elasticsearch/reference/7.8/snapshots-register-repository.html

二、创建es快照存储库

my_backup是存储快照库名称,my_backup_location 是elasticsearch指定的存储位置


PUT /_snapshot/my_backup
{
  "type": "fs",
  "settings": {
    "location": "my_backup_location"
  }
}

查看创建的快照存储库信息


# 查看指定存储库的信息
GET /_snapshot/my_backup
# 查看全部存储库的信息
GET /_snapshot/_all

三、创建一个或多个索引的快照

创建全部索引的快照

# my_backup  刚才初始化的存储库名称
# snapshot_1 相当于快照的子文件夹,即一个索引或者多个索引快照的名称
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true

创建一个或者多个索引快照

# indices 中为要创建索引的索引名称,用逗号分割
# ignore_unavailable 创建快照时该值为true表示不存在的索引会被忽略


PUT /_snapshot/my_backup/snapshot_2?wait_for_completion=true
{
  "indices": "index_1,index_2",
  "ignore_unavailable": true,
  "include_global_state": false,
  "metadata": {
    "taken_by": "kimchy",
    "taken_because": "backup before upgrading"
  }
}

对快照名称格式化,生成格式化数字的快照名称

# PUT /_snapshot/my_backup/<snapshot-{now/d}>
PUT /_snapshot/my_backup/%3Csnapshot-%7Bnow%2Fd%7D%3E

四、查看创建快照的信息

# snapshot-2020.06.23 为刚才对创建的快照进行时间格式化之后的结果,此处也可以使用snameshot_1查看该快照的信息
GET /_snapshot/my_backup/snapshot-2020.06.23

查看所有的存储库快照信息

# 获取my_backup存储库所有的快照信息
GET /_snapshot/my_backup/_all
# 一次从多个存储库中获取快照信息
GET /_snapshot/_all
GET /_snapshot/my_backup,my_fs_backup
GET /_snapshot/my*/snap*

查看当前运行快照

GET /_snapshot/my_backup/_current

删除快照

DELETE /_snapshot/my_backup/snapshot_1

五、还原快照

还原选中存储库中快照的所有索引(默认)不还原集群的状态

# snapshot_1 快照的名称
POST /_snapshot/my_backup/snapshot_1/_restore

还原指定索引,并设置是否还原集群状态

# indices 用逗号分割要还原索引的名称
# ignore_unavailable 默认 false 不还原集群状态,如果为true,则快照的持久性设置,索引模板,接收管道和ILM策略将还原到当前集群中。这将覆盖名称与快照中的名称匹配的所有现有集群设置,模板,管道和ILM策略。
POST /_snapshot/my_backup/snapshot_1/_restore
{
  "indices": "index_1,index_2",
  "ignore_unavailable": true,
  "include_global_state": false,              
  "rename_pattern": "index_(.+)",
  "rename_replacement": "restored_index_$1",
  "include_aliases": false
}


六、还原注意事项

还原时可以在正常运行的集群上执行还原操作。但是,仅当现有索引关闭且其分片数量与快照中的索引数量相同时,才能还原该索引。如果已关闭,则还原操作将自动打开已还原的索引;如果集群中不存在快照中的该索引,则会自动创建新的索引。


文章为公众号《醉鱼Java》原创迁移文章,格式错误或者内容过期请及时留言。

WX 搜索《醉鱼Java》,回复面试,获取2024面试资料。

如果这篇文章对您有所帮助或者启发,帮忙点个关注叭,您的支持是我坚持写作的最大动力。

求一键三连:点赞、转发、收藏

谢谢支持哟 (*^__^*)。


原文地址:ElasticSearch Snapshot And Restore

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表