elasticsearch通过使用快照备份实现数据迁移

环境:
    name3主机 elasticsearch-1.7.2
    data1主机 elasticsearch-1.7.2

    测试的elasticsearch都为单机版,所以产生的快照文件都在一个目录。
需求:
    现在需要将name3中的数据都迁移到data1中

实现步骤:
    1、编辑name3的配置文件,增加快照存储地址
        vi elasticsearch.yml
        path.repo: ["/mnt/dfs/elastic/repo"]
    2、重启elasticsearch
        ps -ef|grep elasticsearch
        kill -9 xxxx
        /opt/elasticsearch-1.7.2/bin/elasticsearch -Xmx32g -Xms32g  -d

    3.注册快照
    curl -XPUT  http://192.168.0.203:9200/_snapshot/my_repo -d '
    {
        "type": "fs",
        "settings": {
            "location": "/mnt/dfs/elastic/repo"
        }
    }'

    执行:
    curl http://localhost:9200/_snapshot 查看结果
    执行快照请求--备份(快照名称:snapshot_20190926)
    curl -XPUT http://localhost:9200/_snapshot/my_repo/snapshot_20190926
    查看执行快照的结果
    curl http://localhost:9200/_snapshot/my_repo/snapshot_20190926
    4.将快照迁移到另一个主机--data1
    scp /mnt/dfs/elastic/repo root@data1:/var/elastic/
    #修改迁移的目标主机data1的elasticsearch.yml,同样增加path.repo 
        vi elasticsearch.yml
        path.repo = /var/elastic/repo
    #重启elasticsearch,注册快照
    curl -XPUT  http://192.168.0.101:9200/_snapshot/my_repo -d '
    {
        "type": "fs",
        "settings": {
            "location": "/var/elastic/repo"
        }
    }'
    #在目标机上执行还原操作
    curl -XPOST http://localhost:9200/_snapshot/my_repo/snapshot_20190926/_restore

 

如果将快照备份到hdfs需要安装hdfs相关的插件:repository-hdfs

构建hdfs快照仓库地址

PUT http://host:9200/_snapshot/backup { "type": "hdfs", "settings": { "uri": "hdfs://host:9000", "path": "/elasticsearch", "conf_location": "/etc/hadoop/hdfs-site.xml" } }

 

查看快照恢复进度:

# 查看所有索引的恢复进度
curl -XGET http://192.168.0.101:9200/_recovery/

# 查看索引kc21k1的恢复进度
curl -XGET http://192.168.0.101:9200/_recovery/kc21k1

你可能感兴趣的:(elasticsearch通过使用快照备份实现数据迁移)