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步的拷贝快照数据和验证快照就可以忽略。