Elasticsearch从elastic.co迁移至AWS时快照恢复uuid解析异常问题
这个unknown field [uuid]解析错误的核心原因是源端与目标端的Elasticsearch/OpenSearch版本不兼容,高版本Elasticsearch生成的快照元数据新增了uuid字段,低版本实例无法识别该字段就会抛出该错误,可按以下步骤排查解决:
- 第一步:核对两端版本兼容性
分别在源端elastic.co实例、AWS端目标实例执行GET /命令,获取两端完整版本号,确认符合快照兼容规则:- 快照仅支持向上兼容,即目标端版本必须大于等于源端版本,低版本实例无法恢复高版本生成的快照
- 若AWS端部署的是OpenSearch而非原生Elasticsearch,需确认对应兼容关系:OpenSearch 1.x对应兼容Elasticsearch 7.10及更早版本,OpenSearch 2.x对应兼容Elasticsearch 7.10之后的部分高版本,若源端Elasticsearch版本超出目标端兼容区间就会触发元数据解析错误
- 第二步:版本不兼容的修复方案
- 优先将AWS端目标实例升级到和源端同版本、或更高的兼容版本,升级完成后重新尝试恢复快照
- 若无法升级目标端,可返回源端实例重新生成兼容目标端版本的快照,创建快照时指定版本参数即可,参考命令:
PUT /_snapshot/es-s3-demo/migrate_snapshot?wait_for_completion=true { "indices": "需要迁移的索引名称,多个用逗号分隔", "ignore_unavailable": true, "include_global_state": false, "version": "填入AWS端目标实例的版本号,例如7.10.0" }- 若上述方案都不适用,可替换迁移方案:通过reindex API、logstash等工具直接跨集群同步数据,避开快照的版本兼容限制
- 第三步:小概率问题排查
若确认版本完全兼容,可检查S3 bucket内的快照元数据文件是否损坏:找到S3路径下前缀为index-的快照元数据文件,确认文件没有被修改、传输完整,文件损坏也会触发解析错误。
内容的提问来源于stack exchange,提问作者Dani Wol.
相关产品推荐
相关产品推荐

