带你读《Elastic Stack 实战手册》之56:——3.5.15.Snapshot (下)

简介: 带你读《Elastic Stack 实战手册》之56:——3.5.15.Snapshot (下)

《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.15.Snapshot (中) https://developer.aliyun.com/article/1228107



监控进度

 

1. 监控 Snapshot 状态

 

通过 GET 请求监控当前 Snapshot 状态,需要注意的是,如果你的 Snapshot 和索引shard 分片很多、仓库存储的延迟很大,那么 _current 请求可能会耗时很久。


# 查看当前 Snapshot 状态
GET /_snapshot/my_fs_backup/_current
# 指定 Snapshot 查看
GET /_snapshot/my_fs_backup/snapshot_1
GET /_snapshot/my_fs_backup/snapshot_*
# 查看所有仓库(如果建了多个仓库的话)
GET /_snapshot/_all
GET /_snapshot/my_fs_backup,my_hdfs_backup
GET /_snapshot/my*
# 指定查看某一个 Snapshot 的进度详情
GET /_snapshot/my_fs_backup/snapshot_1/_status
# 返回结果较大,以下仅展示部分结果。更多结果说明参考:
# /guide/en/elasticsearch/reference/current/get-snapshot-status-api.html
{
    "snapshots": [
        {   # 快照名称
            "snapshot": "snapshot_1",
            # 仓库名称
            "repository": "my_fs_backup",
            "uuid": "HQHFSpPoQ1aY4ykm2o-a0Q",
            # 快照状态
            "state": "SUCCESS",
            # 是否包含集群全局状态
            "include_global_state": true,
            # 索引分片的状态
            "shards_stats": {
                # 初始化中的个数
                "initializing": 0,
                # 已启动的个数
                "started": 0,
                # 最后状态的个数
                "finalizing": 0,
                # 已完成的个数
                "done": 3,
                # 失败个数
                "failed": 0,
                # 总数
                "total": 3
            },
            # 快照备份状态
            "stats": {
                # 待备份的文件统计
                "incremental": {
                    "file_count": 2,
                    "size_in_bytes": 500
                       },
                # 已完成的备份文件统计
                "processed": {
                    "file_count": 1,
                    "size_in_bytes": 124
                }
                # 文件统计总览
                "total": {
                    "file_count": 3,
                    "size_in_bytes": 624
                },
                # 开始时间
                "start_time_in_millis": 1630673216237,
                "time_in_millis": 0
            },
            # 包含的索引
            "indices": {
                # 索引名称
                "index_1": {
                    # 分片备份状态
                    "shards_stats": {
                        "initializing": 0,
                        "started": 0,
                        "finalizing": 0,
                        "done": 1,
                        "failed": 0,
                        "total": 1
                    },
                     "stats": {
                        "incremental": {
                            "file_count": 1,
                            "size_in_bytes": 208
                        },
                        "total": {
                            "file_count": 1,
                            "size_in_bytes": 208
                        },
                        "start_time_in_millis": 1630673216237,
                        "time_in_millis": 0
                    },
                    "shards": {
                        "0": {
                          #initializing:初始化检查集群状态是否可以创建快照
                          #started:数据正在被传输到仓库
                          #finalizing:数据传输完成,shard 分片正在发送 Snapshot 元数据
                            #done:Snapshot 创建完成
                          #failed:遇到错误失败的 shard 分片
                            "stage": "DONE",
                            "stats": {
                                "incremental": {
                                    "file_count": 1,
                                    "size_in_bytes": 208
                                },
                                "total": {
                                    "file_count": 1,
                                    "size_in_bytes": 208
                                },
                                "start_time_in_millis": 1630673216237,
                                "time_in_millis": 0
                            }
                        }
                            }
                    # 省略部分结果...
                }
            }
        }
    ]
}

2. 监控 Restore 恢复状态

 

当 Restore 恢复启动后,因为 Restore 在恢复索引的主分片,所以集群状态会变成 yellow,主分片恢复完成后 Elasticsearch 开始根据副本设置的策略恢复副本数,所有操作完成后集群才会恢复到 green 状态。也可以先把索引的副本数修改为0,待主分片完成后再修改到目标副本数。Restore 恢复状态可以通过监控集群或者指定索引的 Recovery 状态。


# 查看集群恢复状态,更多请参考集群恢复监控接口:
# /guide/en/elasticsearch/reference/current/cat-recovery.html
GET /_cat/recovery/
# 查看索引的恢复状态,更多请参考索引恢复监控接口:
# /guide/en/elasticsearch/reference/current/indices-recovery.html
GET /index_1/_recovery
# 返回结果
{
    "restore_lakehouse": {
        "shards": [
            {
                "id": 1,
                "type": "SNAPSHOT",
                # 恢复的阶段,INIT:初始化;START:开始;INDEX:读取索引元数据和拷贝数据;
                # TRANSLOG:日志回放;FINALIZE:善后整理;DONE:完成;
                "stage": "INDEX",
                    # 是否主分片
                "primary": true,
                "start_time_in_millis": 1630673216237,
                "total_time_in_millis": 1513,
                # 恢复来源
                "source": {
                    # 仓库
                    "repository": "my_fs_backup",
                    "snapshot": "snapshot_3",
                    "version": "7.10.0",
                    "index": "index_1",
                    "restoreUUID": "fLtPIdOORr-3E7AtEQ3nFw"
                },
                # 目标集群
                "target": {
                    "id": "8Z7MmAUeToq6WGCxhVFk8A",
                    # 集群 host
                    "host": "127.0.0.1",
                    "transport_address": "127.0.0.1:9300",
                    "ip": "127.0.0.1",
                    # 集群名称
                    "name": "jt-hpzbook"
                },
                # 索引
                "index": {
                    "size": {
                        # 占用空间大小
                        "total_in_bytes": 25729623,
                        # 可回收空间
                        "reused_in_bytes": 0,
                        # 已恢复大小
                        "recovered_in_bytes": 23397681,
                        # 已恢复进度百分比
                             "percent": "90.9%"
                    },
                    # 文件统计
                    "files": {
                        "total": 50,
                        "reused": 0,
                        "recovered": 43,
                             "percent": "86.0%"
                    },
                    "total_time_in_millis": 1488,
                    "source_throttle_time_in_millis": 0,
                    "target_throttle_time_in_millis": 0
                },
                # 回放日志
                "translog": {
                    "recovered": 0,
                    "total": 0,
                    "percent": "100.0%",
                    "total_on_start": 0,
                    "total_time_in_millis": 0
                },
                # 验证索引
                "verify_index": {
                    "check_index_time_in_millis": 0,
                    "total_time_in_millis": 0
                }
            }
            # 其它shard详情省略...
        ]
    }
}

其他备份手段

 

elasticdump

 

类似 MySQL dump 的功能,对 Elasticsearch 集群的数据进行导入导出。适合非增量索引数据的备份。更多安装使用 elasticdump 请移步:elasticsearch-dump Github

 

其他数据同步工具

 

l Kettle: 免费开源的基于 Java 的企业级 ETL 工具,功能强大简单易用,仅支持写入 Elasticsearch。更多参考:Kettle Gighub

l DataX: 是阿里云 DataWorks 数据集成。更多参考:Datax Github 的开源版本,多种异构数据源之间高效的数据同步功能,目前仅支持写入Elasticsearch。

l Flinkx: 是一个基于Flink的批流统一的数据同步工具,支持 Elasticsearch 的读取和写入。更多参考:Flinkx Github

 

创作人简介:

冯江涛,关注大数据相关技术栈,擅长 HDFS、Elasticsearch 存储相关,Spark、Flink 计算相关,以及大数据中台的开发。Talk is cheap. Show me the code.

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
监控 安全 Shell
病毒木马防御与分析实战
《病毒木马防御与分析》系列以真实的病毒木马(或恶意程序)为研究对象,通过现有的技术手段对其分析,总结出它的恶意行为,进而制定出相应的应对方法,对其彻底查杀。当然,因为我个人水平的有限,查杀分析的病毒可能不是过于高端复杂,但对你认识病毒工作原理还是会很有帮助的,甚至最后你也可以利用c语言实现一个简单的病毒程序。
5132 1
|
Java Windows
签名验签工具
我们提供了一键生成RSA密钥工具。该工具也提供了签名及验签功能,可以演示针对支付宝开放平台接口的签名和验签流程。 WINDOWS版本下载地址:WINDOWS MAC OS版本下载地址:MAC_OSX 解压后,WINDOWS版本双击文件“RSA签名验签工具.bat”即可运行工具。
5403 0
|
数据采集 监控 数据管理
《阿里云数据治理方案及案例分享》|学习笔记
快速学习《阿里云数据治理方案及案例分享》
2903 0
|
2月前
|
缓存 网络协议 安全
你每天上网用的"导航",正在被人偷偷改路线
DNS劫持是攻击者篡改域名解析结果,将用户悄悄导向钓鱼、博彩等恶意网站的隐蔽攻击。它常通过路由器篡改、链路劫持或Local DNS缓存投毒实现,用户毫无感知。HTTPDNS以HTTPS替代传统UDP DNS,加密传输、绕过本地缓存、精准调度,从协议层根治劫持风险。(239字)
|
移动开发 负载均衡 网络协议
Nginx代理WebSocket方法
Nginx代理WebSocket方法
|
小程序 数据可视化 开发者
微信小程序开发入门介绍-布局组件
微信小程序开发入门介绍-布局组件
|
存储 缓存 固态存储
408计算机组成原理学习笔记——存储系统(一)
408计算机组成原理学习笔记——存储系统
2102 2
408计算机组成原理学习笔记——存储系统(一)
|
前端开发 应用服务中间件 nginx
常用前端文件下载方法
经常在项目中会遇到需要下载文件的需求,根据不同的需求和项目实现情况,通常有以下几种做法。
常用前端文件下载方法
|
Linux 开发工具 iOS开发
MAC安装Homebrew总是失败怎么办?
MAC安装Homebrew总是失败怎么办?
2372 0

热门文章

最新文章