Elasticsearch集群备份之数据迁移

我们要升级ES版本时,需要对数据进行备份迁移,下面开始

Elasticsearch备份数据前需要一个存储数据的仓库,支持四种

  • 共享文件系统,比如 NAS
  • Amazon S3
  • HDFS (Hadoop 分布式文件系统)
  • Azure Cloud

下载资源(以NAS为例)

[root@centos74-084 /]#cd /opt/nfs
[root@centos74-084 nfs]# yum install  nfs-utils  --downloadonly --downloaddir=./
[root@centos74-084 nfs]#ls
gssproxy-0.7.0-21.el7.x86_64.rpm           libnfsidmap-0.25-19.el7.x86_64.rpm        
libsemanage-2.5-14.el7.x86_64.rpm          quota-4.01-17.el7.x86_64.rpm
keyutils-1.5.8-3.el7.x86_64.rpm            libpath_utils-0.2.1-32.el7.x86_64.rpm     
libsepol-2.5-10.el7.x86_64.rpm             quota-nls-4.01-17.el7.noarch.rpm
libbasicobjects-0.1.1-32.el7.x86_64.rpm    libref_array-0.1.5-32.el7.x86_64.rpm       
libtirpc-0.2.4-0.15.el7.x86_64.rpm         rpcbind-0.2.0-47.el7.x86_64.rpm
libcollection-0.7.0-32.el7.x86_64.rpm      libselinux-2.5-14.1.el7.x86_64.rpm        
libverto-libevent-0.2.5-4.el7.x86_64.rpm   selinux-policy-3.13.1-229.el7_6.12.noarch.rpm
libevent-2.0.21-4.el7.x86_64.rpm           libselinux-python-2.5-14.1.el7.x86_64.rpm  
nfs-utils-1.3.0-0.61.el7.x86_64.rpm        selinux-policy-targeted-3.13.1-229.el7_6.12.noarch.rpm
libini_config-1.3.1-32.el7.x86_64.rpm      libselinux-utils-2.5-14.1.el7.x86_64.rpm  
policycoreutils-2.5-29.el7_6.1.x86_64.rpm  tcp_wrappers-7.6-77.el7.x86_64.rpm
安装
[root@centos74-084 nfs]#rpm -ivh *.rpm --nodeps --force
准备中...                          ################################# [100%]
正在升级/安装...
   1:libsepol-2.5-10.el7              ################################# [  4%]
   2:libselinux-2.5-14.1.el7          ################################# [  8%]
   3:libsemanage-2.5-14.el7           ################################# [ 13%]
   4:libtirpc-0.2.4-0.15.el7          ################################# [ 17%]
   5:rpcbind-0.2.0-47.el7             ################################# [ 21%]
   6:libref_array-0.1.5-32.el7        ################################# [ 25%]
   7:libevent-2.0.21-4.el7            ################################# [ 29%]
   8:libcollection-0.7.0-32.el7       ################################# [ 33%]
   9:libbasicobjects-0.1.1-32.el7     ################################# [ 38%]
  10:libverto-libevent-0.2.5-4.el7    ################################# [ 42%]
  11:libselinux-utils-2.5-14.1.el7    ################################# [ 46%]
  12:policycoreutils-2.5-29.el7_6.1   ################################# [ 50%]
  13:selinux-policy-3.13.1-229.el7_6.1################################# [ 54%]
**Failed to resolve typeattributeset statement at /etc/selinux/targeted/tmp/modules/400/mariadb/cil:1
semodule:  Failed!** 这里可能会出现失败,但是不影响
  14:tcp_wrappers-7.6-77.el7          ################################# [ 58%]
  15:quota-nls-1:4.01-17.el7          ################################# [ 63%]
  16:quota-1:4.01-17.el7              ################################# [ 67%]
  17:libpath_utils-0.2.1-32.el7       ################################# [ 71%]
  18:libini_config-1.3.1-32.el7       ################################# [ 75%]
  19:gssproxy-0.7.0-21.el7            ################################# [ 79%]
  20:libnfsidmap-0.25-19.el7          ################################# [ 83%]
  21:keyutils-1.5.8-3.el7             ################################# [ 88%]
  22:nfs-utils-1:1.3.0-0.61.el7       ################################# [ 92%]
  23:selinux-policy-targeted-3.13.1-22################################# [ 96%]
  24:libselinux-python-2.5-14.1.el7   ################################# [100%]
  查看nfs安装后状态
  [root@centos74-084 nfs]#systemctl status nfs
  ● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since 二 2019-07-16 17:34:52 CST; 4s ago
  Process: 2437 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl restart gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 2420 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 2419 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 2420 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

7月 16 17:34:51 centos74-084 systemd[1]: Starting NFS server and services...
7月 16 17:34:52 centos74-084 systemd[1]: Started NFS server and services.
 [root@centos74-084 nfs]# vi /etc/exports
    /opt/data/ * (rw,sync,no_root_squash,no_all_squash)#指定共享目录后,保存退出
    ~
    ~
    ~
    ~
 重启nfs服务
 [root@centos74-084 nfs]#systemctl reload nfs
 #显示指定NFS服务器输出目录列表(也称为共享目录列表)
 [root@centos74-084 nfs]#showmount -e 127.0.0.1
  Export list for 127.0.0.1:
  /opt/data *
  #挂在文件目录
 [root@centos74-084 nfs]#mount.nfs 127.0.0.1:/opt/data/ /opt/mnt/
 [root@centos74-084 nfs]#df -h
  文件系统                 容量  已用  可用 已用% 挂载点
  /dev/mapper/centos-root   17G  3.6G   14G   21% /
  devtmpfs                 910M     0  910M    0% /dev
  tmpfs                    920M     0  920M    0% /dev/shm
  tmpfs                    920M  8.7M  912M    1% /run
  tmpfs                    920M     0  920M    0% /sys/fs/cgroup
  /dev/sda1               1014M  143M  872M   15% /boot
  tmpfs                    184M     0  184M    0% /run/user/0
  #挂在成功
  127.0.0.1:/opt/data       17G  3.6G   14G   21% /opt/mnt
  1. NAS搭建成成功后修改elasticsearch.yml在文件加入path.repo: ["/opt/esdata/"]指定文件共享系统目录后重启

ES集群备份支持API模式,本在使用的非API
3. 打开kibana->Dev Tools

创建仓库
PUT _snapshot/my_backup
{
“type”: “fs”,
“settings”: {
“location”: “/opt/data”
}
}

  1. 给我们的仓库取一个名字,在本例它叫 my_backup
  2. 我们指定仓库的类型应该是一个共享文件系统。
  3. 最后,我们提供一个已挂载的设备作为目的地址。
    注意:共享文件系统路径必须确保集群所有节点都可以访问到。

快照所有索引
PUT _snapshot/my_backup/snapshot_1
快照信息

列出快照信息
GET _snapshot/my_backup/snapshot_1

列出所有快照信息
GET _snapshot/my_backup/_all

获取快照统计信息
GET _snapshot/my_backup/snapshot_1/_status

删除快照
DELETE _snapshot/my_backup/snapshot_1

恢复集群数据就简单多了,一旦你备份过了数据,恢复它就简单了:只要在你希望恢复回集群的快照 ID 后面加上 _restore 即可

恢复快照
POST _snapshot/my_backup/snapshot_1/_restore

还有附加的选项用来重命名索引。这个选项允许你通过模式匹配索引名称,然后通过恢复进程提供一个新名称。如果你想在不替换现有数据的前提下,恢复老数据来验证内容,或者做其他处理,这个选项很有用。让我们从快照里恢复单个索引并提供一个替换的名称:

POST /snapshot/my_backup/snapshot_1/restore
{
“indices”: “index_1”,
“rename_pattern”: "index
(.+)",
“rename_replacement”: "restored_index
$1"
}

只恢复 index_1 索引,忽略快照中存在的其余索引。
查找所提供的模式能匹配上的正在恢复的索引。
然后把它们重命名成替代的模式。
这个会恢复 index_1 到你及群里,但是重命名成了 restored_index_1 。

取消恢复
要取消一个恢复,你需要删除正在恢复的索引。 因为恢复进程其实就是分片恢复,发送一个 删除索引 API 修改集群状态,就可以停止恢复进程。比如:

DELETE /restored_index_3

如果 restored_index_3 正在恢复中,这个删除命令会停止恢复,同时删除所有已经恢复到集群里的数据。

这个东西用着还是挺爽的!!!
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最是书香能致远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值