es数据传输:Elasticsearch 基于快照的跨集群数据迁移

理论基础:ElasticSearch 通过快照实现数据的备份处理,建立快照之前需要创建好仓库;然后将快照存储在仓库中。可以针对部分索引创建快照,也可以对所有的索引创建快照。( 快照迁移数据的方式  相当于整体复制索引和Mapping,如果考虑迁移数据时,重建Mapping,应该采用reindex接口。)

整体思路:基于两台虚拟机Linux环境,搭建两个Elasticsearch测试集群,通过快照方式将集群1的数据索引test_index_db,整体迁移至集群2。

集群环境:jdk1.8,es6.4.1,kibana6.4.1

一、创建仓库

1、首先需要在数据源ES节点服务器上创建仓库,并且要设置这个目录是共享的目录,所有的节点都能对这个目录进行读写。
Linux的NFS配置,将服务器B的目录共享到服务器A,这样服务器A上面的程序就可以直接在共享目录中上传合并文件,就像访问自己本地的文件一样。
Linux服务器之间如何设置共享目录:https://jingyan.baidu.com/article/48206aea3495f3616ad6b3b0.html
mount.nfs: access denied by server while mounting解决办法:

修改配置文件/etc/exports

/mnt/my_repo_folder  *(insecure,rw,async,no_root_squash)

保存退出,然后重启nfs服务:service nfs restart

2、在所有 ElasticSearch 节点中elasticsearch.yml文件中定义好仓库的路径,并重启服务
如: path.repo: /mnt/my_repo_folder


3、数据源ES集群和目标源ES集群都要注册仓库:在kibana执行如下命令注册仓库

#  _snapshot  es提供api接口
#  my_repo    仓库名称
#  compress为true,表明我们希望压缩。
#  max_restore_bytes_per_sec和max_snapshot_bytes_per_sec 限制数据的snapshot及恢复的数据速度


PUT _snapshot/my_repo
    {
      "type": "fs",
      "settings": {
        "location": "/mnt/my_repo_folder",
        "compress": true,
        "max_restore_bytes_per_sec": "50mb",
        "max_snapshot_bytes_per_sec": "50mb"
      }
    }

二、快照操作接口

1、数据源ES集群:在kibana执行如下的命令来对我们的test_index_db索引进行snapshot:
PUT _snapshot/my_repo/test_snapshot_1
    {
      "indices": "test_index_db",
      "ignore_unavailable": true,
      "include_global_state": true
    }
    
2、数据源ES集群:我们可以通过如下的命令来进行监测正在进行的snapshot的进度    
GET _snapshot/my_repo/test_snapshot_1/_status

3、目标源ES集群:在源ES创建快照完成后,在目标ES即可执行如下命令,将仓库中的快照恢复至目标集群。

#索引test_index_db不能提前创建,由快照中直接恢复


POST _snapshot/my_repo/test_snapshot_1/_restore
    {
      "indices": "test_index_db",
      "ignore_unavailable": true,
      "include_global_state": false
    }
    
参考:
https://cn-blogs.cn/archives/259.html
https://www.cnblogs.com/sanduzxcvbnm/p/12090809.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值