ES之数据迁移篇(使用snapshot快照)
作者:互联网
1.背景说明:
两个ES集群版本:5.6.8
旧集群:ERQIES
三个节点:192.168.185.70,192.168.185.71,192.168.185.72
新集群:gzescluster
五个节点: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