为elastic的索引做快照并恢复快照到新集群

1. 为指定的所有做快照

curl -XPUT "192.168.1.1:9200/_snapshot/my_backup/testindex_20170803?wait_for_completion=true&pretty=true" -d '{
    "indices": "testindex",
    "ignore_unavailable": "true",
    "include_global_state": false
}'
ignore_unavailable true 在创建快照的过程中会忽略快照请求中不存在的索引。
ignore_unavailable 的默认值为false,即如果要做快照的索引不存在,快照请求就会失败。
include_global_state false 能够防止集群的全局状态被作为快照的一部分存储起来。
include_global_state的默认值为true
partial默认值是false,如果快照中的一个或多个主分片不是可用状态,集群会等待直到主分片全部可用才开始做快照。 通过设置 partial 为 true 可以忽略主分片全部可用检查直接做快照。

  

2.查看快照状态

curl -XGET "182.168.1.1:9200/_snapshot/my_backup/testindex_20170803?pretty=true"

3.将快照产生的文件拷贝到新集群数据仓库所在目录,并修改数据仓库中index文件,增加已经做快照的索引名称

scp -r /opt/my_backup/indices/testindex 192.168.1.2:/opt/my_backup/indices
scp /opt/my_backup/meta-testindex_20170803.dat 192.168.1.2:/opt/my_backup/
scp /opt/my_backup/snap-testindex_20170803.dat 192.168.1.2:/opt/my_backup/
[@192.168.1.2]cat /opt/my_backup/index
{"snapshots":["testindex2"]}
[@192.168.1.2]vim /opt/my_backup/index
{"snapshots":["testindex2","testindex"]} 

4.使用新集群地址查看快照状态,状态和第2步查看结果一样,说明快照迁移成功

curl -XGET "182.168.1.2:9200/_snapshot/my_backup/testindex_20170803?pretty=true"

5.恢复快照到新集群

curl -XPOST "192.168.1.2:9200/_snapshot/my_backup/testindex_20170803/_restore?wait_for_completion=true&pretty=true" -d '{
    "indices": "testindex",
    "ignore_unavailable": "true",  
    "include_global_state": false,
    "include_aliases": false,     
    "partial": "false",      
    "rename_pattern": "testindex",
    "rename_replacement": "testindex_from_192_168_1_1"
}'
ignore_unavailable true 在恢复快照的过程中会忽略快照请求中不存在的索引。
ignore_unavailable 的默认值为false,即如果要做快照的索引不存在,快照请求就会失败。
include_global_state false 能够防止集群的全局状态被作为快照的一部分存储起来。
include_global_state的默认值为false【恢复索引的默认值和创建索引的默认值不一样】
include_aliases false 不恢复索引别名信息到集群
include_aliases 的默认值为true
partial false快照中索引分片信息如果不完整,不恢复索引到集群【partial含义和创建快照是对含义不同】
partial默认值是false,如果设置成true,即使索引分片不足,也会恢复索引,只是被成功快照的索引分片能正常恢复,没有被成功快照的索引分片在集群中是空值代替来恢复。

6.对比索引信息,,索引记录数是否一致

curl -XGET "192.168.1.1:9200/_cat/count/testindex?v"
curl -XGET "192.168.1.2:9200/_cat/count/testindex?v"

7.删除索引快照

curl -XDELETE "192.168.1.1:9200/_snapshot/my_backup/testindex_20170803?wait_for_completion=true&pretty=true"
curl -XDELETE "192.168.1.2:9200/_snapshot/my_backup/testindex_20170803?wait_for_completion=true&pretty=true"

两个集群可以使用同一个数据仓库。即在为集群建立数据仓库时使用同一个dfs目录。

以上步骤中的第3,4步的拷贝快照数据和验证快照就可以忽略。

原文地址:https://www.cnblogs.com/micmouse521/p/8118040.html