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

风格不统一 提交于 2020-03-03 17:00:21

环境:
    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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!