Elasticsearch数据迁移

终于都要迁移服务器了,像MySQL,Redis这些都容易迁移,但Elasticsearch还是第一个迁移。先去官网看了下资料,步骤说得不是很明白,让人云里雾里的。在网上找了下资料,发现还是比较简单的,我就想把我亲身经历说出来,当一次学习心得。

主要步骤

  • 需要迁移Elasticsearch执行注册快照存储库
  • 使用http put 请求执行文件快照
  • 在新的Elasticsearch上注册快照存储库,copy文件到存储库上
  • 使用http 执行还原操作

注册快照存储库

首先在elasticsearch.yml 中添加 path.repo注册位置,因为es都是非root用户启动,导出的目录必须当前用户能读写,建议目录设置为用户/home/{user}/mybackup,将以下设置添加到 elasticsearch.yml文件

path.repo: ["/home/elast/ecopherebbs"]

重启Elasticsearch
执行http 注册存储库

 curl -X PUT "localhost:9200/_snapshot/ecopherebbs" -H 'Content-Type: application/json' -d'
> {  "type": "fs",
>     "settings": {
>       "location": "/home/elast/ecopherebbs"
>     }
> }
> 

执行后 curl http://localhost:9200/_snapshot 查看结果

{"ecopherebbs":{"type":"fs","settings":{"location":"/home/elast/ecopherebbs"}}}

注册成功
执行快照请求

curl -XPUT http://localhost:9200/_snapshot/ecopherebbs/snapshot_20181029

查看执行快照的结果curl http://localhost:9200/_snapshot/ecopherebbs/snapshot_20181029

{
    "snapshots": [{
            "snapshot": "snapshot_20181029",
            "uuid": "-8T1g-wvT_ai7dIwj3hiIQ",
            "version_id": 5040199,
            "version": "5.4.1",
            "indices": [ "ecopherebbs", "news_index"],
            "state": "SUCCESS",
            "start_time": "2018-10-29T10:52:11.932Z",
            "start_time_in_millis": 1540810331932,
            "end_time": "2018-10-29T10:52:12.662Z",
            "end_time_in_millis": 1540810332662,
            "duration_in_millis": 730,
            "failures": [],
            "shards": {
                "total": 10,
                "failed": 0,
                "successful": 10
            }
        }
    ]
}

还原快照

在新的Elasticsearch elasticsearch.yml 添加path.repo: ["/home/dba/ecopherebbs"] 快照路径,将目录copy到另一台服务器上。
重复上面注册存储库步骤,让新的Elasticsearch成功注册存储库。
执行还原操作curl -XPOST http://localhost:9200/_snapshot/ecopherebbs/snapshot_20181029/_restore
响应{"accepted":true} 还原成功

你可能感兴趣的:(Elasticsearch数据迁移)