其他分享
首页 > 其他分享> > ES之数据迁移篇(使用snapshot快照)

ES之数据迁移篇(使用snapshot快照)

作者:互联网

1.背景说明:

两个ES集群版本:5.6.8

旧集群:ER­QI­ES

三个节点:192.168.185.70,192.168.185.71,192.168.185.72

新集群:gzes­cluster

五个节点:10.181.92.184,10.181.92.185,10.181.92.186,10.181.92.187,10.181.92.188

2.修改elasticsearch.yml配置文件并重启集群

先禁用两个集群的自动分配:

在两个集群其中一台上面执行即可:

关闭:#curl -XPUT http://127.0.0.1:9200/_cluster/settings -d '{ "transient": {"cluster.routing.allocation.enable": "none"} }'

开启:#curl -XPUT http://127.0.0.1:9200/_cluster/settings -d '{ "transient": {"cluster.routing.allocation.enable": "all"} }'

修改elastticsearch.yml配置文件指定snapshot的共享目录:

旧集群指定:/data/backups/my_backup

#mkdir -p /data/backups/my_backup

修改所属群组使得es可以写入

#chown -R eleasticsearch:elasticsearch /data/backups/my_backup

#chmod 777 /data/backups/my_backup

新集群指定:/cloud/data01/backup

#chown -R eleasticsearch:elasticsearch /cloud/data01/backup

#chmod 777 /cloud/data01/backup

重启两台es集群,先杀掉es进程(tips:一台一台重启比较集群恢复比较快一点)

#su elasticsearch

#bin/elasticsearch -d

3.准备安装nfs共享目录的软件,挂载共享目录

先将每台机器上面安装nfs,执行:

#yum -y install nfs-utils

配置nfs服务器,这里选机器(10.181.92.184)来作为共享文件的服务器

修改所有机器的nfs配置文件指定Domain为10.181.92.184

#vim /etc/idmapd.conf

配置服务器(10.181.92.184)的共享目录和共享的网段范围:

#vim /etc/exports

将本机的/cloud/data02/nfs_data共享目录,开放给网段上面的主机访问,允许这些主机

进行写,使用者如果以root身份登入,那么使用者对这个目录具有root权限

开启nfs服务,并重启nfs服务

#systemctl enable --now rpcbind nfs-server

#service nfs-server restart

设置防火墙如果防火墙有开的话

#firewall-cmd --add-service=nfs --permanent

客户端安装nfs完成,配置domain后设置挂载目录

旧集群的机器挂载:

#mount -t nfs 10.181.92.184:/cloud/data02/nfs_data /cloud/data01/backup

新集群的机器挂载:

#mount -t nfs 10.181.92.184:/cloud/data02/nfs_data /data/backups/my_backup

df -TH查看新旧集群挂载情况:

要在系统重新启动时进行自动挂载#vim /etc/fstab

4.建立es索引快照备份

以下命令在kibana里面执行

#先建立旧集群索引快照库:

PUT /_snapshot/my_backup

{"type": "fs",

  "settings": {

    "compress": true,

    "location": "/data/backups/my_backup"

  }

}

#新集群群索引快照库:

PUT /_snapshot/my_backup

{

  "type": "fs",

  "settings": {

    "compress": true,

    "location": "/cloud/data01/backup"

  }

}

#旧集群指定备份库的索引和备份名称

PUT /_snapshot/my_backup/snapshot_20220502?wait_for_completion=true

{

  "indices":"hnscan_business_t_bs_day_chk_ene_drv,hnscan_business_t_bs_day_ene_drv",

  "ignore_unavailable": true,

  "include_global_state": false

}

#旧集群查看以及备份好的索引名称

GET /_snapshot/my_backup/snapshot_20220502

5.拷贝es快照备份(如果需要的话,这里免了因为共享目录都是在同一台机器上面)

6.恢复快照备份

# 查看所有快照信息

GET /_snapshot/my_backup/_all

#查看快照库里面状态

GET /_snapshot/my_backup/snapshot_20220502/_status

#恢复快照库里面的索引

GET /snapshot_20220502/_recovery

# 从快照信息中恢复(注意要先把已有的索引关闭了)

POST /_snapshot/my_backup/snapshot_20220502/_restore

{

  "indices":"hnscan_business_t_bs_day_ene_drv,hnscan_business_t_bs_day_chk_ene_drv"

}

#关闭索引

POST hnscan_business_t_bs_day_chk_ene_drv/_close?pretty

POST hnscan_business_t_bs_day_ene_drv/_close?pretty

#打开索引

POST hnscan_business_t_bs_day_chk_ene_drv/_open?pretty

POST hnscan_business_t_bs_day_ene_drv/_open?pretty

注意:快照恢复索引是全量覆盖操作。旧集群索引的分片数和新集群索引的分片数必须保持

一致才能恢复操作。

参考资料:

https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-snapshots.html

https://www.fwqwd.com/6297.html

https://blog.csdn.net/wzz87/article/details/106896347/

标签:快照,my,集群,snapshot,nfs,backup,ES
来源: https://www.cnblogs.com/lys_013/p/16539388.html