分享

Elasticsearch数据迁移实战之利用Snapshot方式实



问题导读


1.怎样把索引加载到Elasticsearch中?
2.怎样对索引进行snapshot?
3.如何把之前备份的数据恢复回来?




# # 准备测试数据

运行起来我们的Kibana:

20191021204701824.png

我们分别点击上面的1和2处:
2019102120481842.png

点击上面的“Add data”。这样我们就可以把我们的kibana_sample_data_logs索引加载到Elasticsearch中。

[mw_shl_code=shell,true]GET _cat/indices/kibana_sample_data_logs[/mw_shl_code]

20191113131514896.png

# #  注册repository

首先我们在我们的电脑上创建一个如下的目录:

[mw_shl_code=shell,true]/shared_folder/my_repo[/mw_shl_code]

我们在termimal中打入如下的命令:

[mw_shl_code=shell,true]mkdir -p shared_folder/my_repo/[/mw_shl_code]

[mw_shl_code=shell,true]
    $ pwd
    /Users/liuxg/shared_folder
    bogon:shared_folder liuxg$ ls -al
    drwxr-xr-x   2 liuxg  staff    64 Nov 13 13:23 my_repo[/mw_shl_code]

将以下path.repo属性添加到我们运行的所有node的elasticsearch.yml文件中:

[mw_shl_code=shell,true]path.repo: /Users/liuxg/shared_folder/my_repo[/mw_shl_code]

注意,针对你的情况,你需要改动这里的path路径。

然后启动我们的Elasticsearch及Kibana。紧接着,我们在Kibana console中打入如下的命令:

[mw_shl_code=shell,true]
    PUT _snapshot/my_local_repo
    {
      "type": "fs",
      "settings": {
        "location": "/Users/liuxg/shared_folder/my_repo"
      }
    }
[/mw_shl_code]

注意这里的location是根据我自己的电脑的路径来设置的。你需要根据自己实际的路径进行修改。在这里my_local_repo是我们的repository名称。

接下来,我们打入如下的命令来对我们的kibana_sample_data_logs索引进行snapshot:

[mw_shl_code=shell,true]
    PUT _snapshot/my_local_repo/snapshot_1
    {
      "indices": "kibana_sample_data_logs",
      "ignore_unavailable": true,
      "include_global_state": true
    }[/mw_shl_code]

20191113133945504.png

我们可以通过如下的命令来查看snapshot:

[mw_shl_code=shell,true]GET _snapshot/my_local_repo/_all[/mw_shl_code]

20191113134109422.png

我们可以在右边看到snapshot_1出现在列表之中,说明我们已经成功地创建了这个snapshot。

我们接下来可以通过如下的命令来删除kibana_sample_data_logs索引:

[mw_shl_code=shell,true]DELETE kibana_sample_data_logs[/mw_shl_code]

这样我们彻底地删除了这个索引。那么我们该如何把之前备份的数据恢复回来呢?

在Kibana中打入如下的命令:

[mw_shl_code=shell,true]
    POST _snapshot/my_local_repo/snapshot_1/_restore
    {
      "indices": "kibana_sample_data_logs",
      "ignore_unavailable": true,
      "include_global_state": false
    }[/mw_shl_code]

20191113134738149.png

在执行完上面的命令后,我们可以通过如下的命令来查看恢复后的kibana_sample_data_logs索引:

[mw_shl_code=shell,true]GET kibana_sample_data_logs/_count
[/mw_shl_code]

显然我们已经成功地恢复了我们之前备份的数据。

这个时候,如果我们去到我们的snapshot文件目录,我们可以看到:

[mw_shl_code=applescript,true]
    $ pwd
    /Users/liuxg/shared_folder/my_repo
    bogon:my_repo liuxg$ ls
    index-0                                meta-TzygGpJ1SOK5yJdsmc1lng.dat
    index.latest                        snap-TzygGpJ1SOK5yJdsmc1lng.dat
    indices
[/mw_shl_code]

显然在文件目录中,已经有新生产的文件了。





最新经典文章,欢迎关注公众号



---------------------

作者:水的精神
来源:csdn
原文:Elasticsearch:使用Snapshot 进行数据备份迁移 - 实战


已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条