快照备份

备份和还原的前提:在配置文件elasticsearch.yml中设置path.repo

path.repo: ["D:\\elasticsearch-6.8.23\\elasticsearch-6.8.23\\snapshot_data"]

创建快照仓库

语法:

PUT http://127.0.0.1:9200/_snapshot/快照仓库名

实例:创建一个名叫my_fs_backup的快照仓库

PUT http://127.0.0.1:9200/_snapshot/my_fs_backup

{
"type": "fs",
"settings": {
"location": "my_fs_backup_location", // 如果使用相对路径,则根据配置文件中的path.repo中的路径下创建文件夹
"compress": true // 是否启用压缩
}
}

查看快照仓库

GET http://127.0.0.1:9200/_snapshot/快照仓库名/

删除快照仓库

DELETE http://127.0.0.1:9200/_snapshot/快照仓库名/

开始快照备份

语法:

PUT http://127.0.0.1:9200/_snapshot/<快照仓库名>/快照备份名
?<wait_for_completion=false|true>&ignore_unavailable=false|true?include_global_state=false|true # 快照的名称可以用这种方式,来创建名称中包含当前日期的快照,例如 snapshot-2018.05.11 :
# 日志格式详见:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/date-math-index-names.html
# PUT /_snapshot/my_backup/<snapshot-{now/d}>
# URL特殊字符要编码,上面的日志格式链接有详细说明。
PUT /_snapshot/my_backup/%3Csnapshot-%7Bnow%2Fd%7D%3E wait_for_completion:是否等待快照备份完成,如果你的数据特别多会卡住很久的...
ignore_unavailable: 忽略不可用不存在的索引,默认为false,true则表示如果所有不存在,则会跳过而不是报错。
include_global_state:是否包含集群全局状态信息,默认为true。

实例:在my_fs_backup快照仓库中创建一个名为snapshot-1的快照,只备份completions,articles,news索引

PUT http://127.0.0.1:9200/_snapshot/my_fs_backup/snapshot-1
// 可以指定只备份那些索引
{
"indices": "completions,articles,news"
}

查看快照的备份、还原情况

语法:

GET http://127.0.0.1:9200/_snapshot/<快照仓库名>/<快照名,支持通配符查找多个>/

# 加上_status可以获取更完整的信息
GET http://127.0.0.1:9200/_snapshot/<快照仓库名>/<快照名,支持通配符查找多个>/_status

实例:查看my_fs_backup仓库下的snapshot-1快照的情况

GET http://127.0.0.1:9200/_snapshot/my_fs_backup/snapshot-1/_status

返回:
{
"snapshots": [
{
"snapshot": "snapshot-1", // 快照的名称
"repository": "my_fs_backup", // 快照所在的快照仓库
"uuid": "98Fv_sStR-ilW114aF768g",
"state": "SUCCESS", // 快照的备份状态
"include_global_state": true, // 该快照是否包含集群全局状态信息
"shards_stats": {
"initializing": 0,
"started": 0,
"finalizing": 0,
"done": 9,
"failed": 0,
"total": 9
},
"stats": {
"incremental": {
"file_count": 96,
"size_in_bytes": 631455
},
"total": {
"file_count": 96,
"size_in_bytes": 631455
},
"start_time_in_millis": 1688029820217,
"time_in_millis": 86,
"number_of_files": 96,
"processed_files": 96,
"total_size_in_bytes": 631455,
"processed_size_in_bytes": 631455
},
"indices": { // 快照中的每个索引信息
"news": {
"shards_stats": {
"initializing": 0,
"started": 0,
"finalizing": 0,
"done": 3,
"failed": 0,
"total": 3
},
"stats": {...略....}
"shards": { // 所以的分片信息
"0": { // 第1个分片
"stage": "DONE",
"stats": {
"incremental": {
"file_count": 4,
"size_in_bytes": 3759
},
"total": {
"file_count": 4,
"size_in_bytes": 3759
},
"start_time_in_millis": 1688029820289,
"time_in_millis": 14,
"number_of_files": 4,
"processed_files": 4,
"total_size_in_bytes": 3759,
"processed_size_in_bytes": 3759
}
},
"1": { //第2个分片
"stage": "DONE",
"stats": {...略....}
},
"2": {
"stage": "DONE",
"stats": {...略....}
}
}
}
}
}
]
}

查看快照仓库下所有的快照

语法:

GET http://127.0.0.1:9200/_snapshot/<快照仓库名>/_all

实例:

{
"snapshots": [
{
"snapshot": "snapshot-1",
"uuid": "98Fv_sStR-ilW114aF768g",
"version_id": 6082399,
"version": "6.8.23",
"indices": [
"completions",
"articles",
"news"
],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2023-06-29T09:10:20.185Z",
"start_time_in_millis": 1688029820185,
"end_time": "2023-06-29T09:10:20.310Z",
"end_time_in_millis": 1688029820310,
"duration_in_millis": 125,
"failures": [],
"shards": {
"total": 9,
"failed": 0,
"successful": 9
}
},
{
"snapshot": "snapshot-2023.06.29",
"uuid": "j_TNZ3NvT5yX-cEGogJVuQ",
"version_id": 6082399,
"version": "6.8.23",
"indices": [
"completions",
"articles",
"news"
],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2023-06-29T09:28:58.952Z",
"start_time_in_millis": 1688030938952,
"end_time": "2023-06-29T09:28:59.033Z",
"end_time_in_millis": 1688030939033,
"duration_in_millis": 81,
"failures": [],
"shards": {
"total": 9,
"failed": 0,
"successful": 9
}
}
]
}

集群环境的下的快照备份

多节点集群如何配置才能实现快照?

第一:建立共享文件系统:如NFS共享,确定每一个节点挂载到指定路径,才能创建快照存储库。

第二:在所有的主节点、数据节点都要配置相同的path.repo。

快照还原

还原步骤

1、设置各个节点(集群环境的每台都要设置)elasticsearch.yml中的path.repo(如果是还原到其他es实例上,这一步要做。)

2、创建快照仓库,和备份快照一样,都需要先创建快照仓库。

3、复制备份的快照文件到快照仓库指定的文件夹下(如果是还原到其他es实例上,这里假设是没有使用ftp等共享方式的快照仓库)

4、执行还原快照的命令

POST /_snapshot/<快照仓库名>/<快照名>/_restore

// 还原的时候可以进行一些设置
{
"indices": "index_1,index_2", // 只还原指定的索引
"ignore_unavailable": true, // 忽略不可用索引
"include_global_state": true, // 包含es集群全局状态信息
// rename_pattern 和rename_replacement用于使用正则表达式重命名索引
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}

实例:

POST http://127.0.0.1:9201/_snapshot/my_fs_backup/snapshot-1/_restore

停止正在运行的快照和恢复操作

DELETE /_snapshot/<快照仓库名>/<快照名>

其他还原查看命令

查看还原信息
GET http://127.0.0.1:9200/_recovery/ 查看正在运行的快照
GET /_snapshot/my_backup/_current

ElasticSearch快照备份、还原的更多相关文章

  1. elasticsearch数据备份还原

    elasticsearch数据备份还原 1.在浏览器中运行http://XXX.XXX.XXX.XXX:9200/_flush,确保索引数据能保存到硬盘中. 2.原数据的备份.主要是elasticse ...

  2. ElasticSearch快照备份及恢复

    工作步骤: 1:建立备份快照数据挂载点,即共享文件目录(Shared Filesystem): 2:建立快照仓储repository: 3:建立snapshot快照备份: 4:恢复snapshot快照 ...

  3. Mysql数据库之备份还原(mysqldump,LVM快照,select备份,xtrabackup)

    备份类型: 热备份:读写不受影响 温备份:仅可执行读备份 冷备份:离线备份,读写均不能执行,关机备份 物理备份和逻辑备份 物理备份:复制数据文件,速度快. 逻辑备份:将数据导出之文本文件中,必要时候, ...

  4. Mysql数据库备份—-通过LVM快照实现备份还原

    一.实验环境 一台测试机:A(172.18.30.1) 操作系统:Centos7 操作对象数据库版本:mariadb-10.2 二.实现目的 从A机器(172.18.30.1)简单搭建数据库,创建测试 ...

  5. 备份还原ESXi 中的虚拟机快照

    了解 ESXi 中的虚拟机快照 (1015180) Click here to view full document Symptoms 免责声明:本文是 Understanding VM snapsh ...

  6. 挖一挖MongoDB的备份与还原(实现指定时间点还原和增量备份还原)

    一  研究背景需求 目前作者所在公司的MongoDB数据库是每天凌晨做一次全库完整备份,但数据库出现故障时,只能保证恢复到全备时间点,比如,00:30 做的完整备份,而出现故障是下午18:00,那么现 ...

  7. Elasticsearch snapshot 备份的使用方法 【备忘】

    常见的数据库都会提供备份的机制,以解决在数据库无法使用的情况下,可以开启新的实例,然后通过备份来恢复数据减少损失.虽然 Elasticsearch 有良好的容灾性,但由于以下原因,其依然需要备份机制. ...

  8. (4.3)mysql备份还原——mysql备份策略

    (4.3)mysql备份还原——mysql备份策略 1.指定备份策略时需要考虑的点 [1.1]备份周期:2次备份间隔时长 [1.2]备份方式:在备份周期中,使用什么备份方式.备份模式 [1.3]实现方 ...

  9. 通过递增快照备份 Azure 非托管 VM 磁盘

    概述 Azure 存储提供创建 Blob 快照的功能. 快照将捕获该时间点的 Blob 状态. 本文介绍有关如何使用快照维护虚拟机磁盘备份的方案. 如果选择不使用 Azure 备份和恢复服务,但想要为 ...

  10. 【ELK】Elasticsearch的备份和恢复

    非原创,只是留作自己查询使用,转自http://keenwon.com/1393.html Elasticsearch的备份和恢复 备份 Elasticsearch的一大特点就是使用简单,api也比较 ...

随机推荐

  1. 2023-09-01:用go语言编写。给出两个长度均为n的数组, A = { a1, a2, ... ,an }, B = { b1, b2, ... ,bn }。 你需要求出其有多少个区间[L,R]

    2023-09-01:用go语言编写.给出两个长度均为n的数组, A = { a1, a2, ... ,an }, B = { b1, b2, ... ,bn }. 你需要求出其有多少个区间[L,R] ...

  2. ipa客户端安装

    ipa客户端安装 安装操作官网 非交互式安装IPa客户端 kinit admin ipa host-find ipa host-add ipa host-add --help ipa host-add ...

  3. 快速了解C#接口(Interface)

    Runoob 接口定义了所有类继承接口时应遵循的语法合同.接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分. 接口定义了属性.方法和 ...

  4. 【接口自动化测试】Eolink Apilkit 安装部署,支持 Windows、Mac、Linux 等系统

    Eolink Apikit 有三种客户端,可以依据自己的情况选择.三种客户端的数据是共用的,因此可以随时切换不同的客户端. 我们推荐使用新推出的 Apikit PC 客户端,PC 端拥有线上产品所有的 ...

  5. Linux服务器搭建环境复盘

    Linux服务器搭建环境复盘 Linux服务器上是没有开发环境的,需要自己配置,在获得了服务器账号后,通过WinSCP登录可以传文件. 下载anaconda 官网下载Anaconda Linux版本 ...

  6. Towards Network Anomaly Detection Using Graph Embedding笔记

    Towards Network Anomaly Detection Using Graph Embedding 目录 Towards Network Anomaly Detection Using G ...

  7. JAVA中三种I/O框架——BIO、NIO、AIO

    一.BIO(Blocking I/O) BIO,同步阻塞IO模型,应用程序发起系统调用后会一直等待数据的请求,直至内核从磁盘获取到数据并拷贝到用户空间: 在一般的场景中,多线程模型下的BIO是成本较低 ...

  8. MySQL中sql_mode的设置

    在升级MySQL版本到8.0的过程中,需要关注sql_mode参数默认值的变化,8.0版本sql_mode不支持 NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有 NO_AU ...

  9. 我在前端写Java SpringBoot项目

    前言 玩归玩,闹归闹,别拿 C端 开玩笑! 这里不推荐大家把Node服务作为C端服务,毕竟它是单线程多任务 机制. 这一特性是 Javascript 语言设计之初,就决定了它的使命 - Java &g ...

  10. 18.1 Socket 原生套接字抓包

    原生套接字抓包的实现原理依赖于Windows系统中提供的ioctlsocket函数,该函数可将指定的网卡设置为混杂模式,网卡混杂模式(Promiscuous Mode)是常用于计算机网络抓包的一种模式 ...