elasticsearch snapshot数据备份迁移

   小数据量可以直接使用elasticdump这个工具配合脚本进行备份或者数据迁移。当数据量较大的时候,可以用elasticsearch提供的数据备份迁移策略:snapshot,来备份、迁移数据。

   该策略需要配合共享文件系统。 将备份快照的文件夹作为共享文件夹,使该文件夹可以被所有的新老集群服务器访问到;在原服务器上面备份数据,在新集群的机器上恢复备份,就可以达到数据迁移的目的,本文档中使用nfs来挂载文件夹。

操作的elasticsearch版本为5.4

以下为操作步骤:

  • nfs文件共享系统搭建

注:操作执行的linux系统为redHat6.6

服务端:(提供被挂载的文件夹)

 1.安装 nfs-utils  rpcbind 软件:

 yum install nfs-utils rpcbind -y

       -  nfs-utils  用于NFS共享发布和访问

       -  rpcbind    用于远端过程调用机制支持

 

2.设置服务开机自启:

chkconfig nfs on

chkconfig rpcbind on

 

3.创建共享目录并设置

mkdir  /usr/local/snapshot

    vim /etc/exports 加入:

       /usr/local/snapshot 188.190.13.52(rw,no_root_squash,no_all_squash,async)

       如果有多个ip的话

           /usr/local/snapshot 188.190.13.52(rw,no_root_squash,no_all_squash,async) 188.190.13.54(rw,no_root_squash,no_all_squash,async)

    exportfs -rv

       -查看共享目录

 

4.启动服务:

    /etc/init.d/rpcbind start

    /etc/init.d/rpcidmapd start

       -启动rpc,RH系操作系统在6.0版本之后没有portmap服务控制rpc的启动,由于NFS和nfslock的启动需要向rpc进行注册,rpc不启动的话就会报错。

       -启动rpcbind&rpcidmap rpcbind是6.0版本后默认的RPC服务,所以要先于nfs启动。如果不启动rpcidmap则会造成用户权限的映射错误,用户的权限看起来是一串数字。

    /etc/init.d/nfs start

   

客户端

1.安装 nfs-utils  rpcbind 软件:

 yum install nfs-utils rpcbind -y

       -  nfs-utils  用于NFS共享发布和访问

       -  rpcbind    用于远端过程调用机制支持

 

2.设置服务开机自启:

chkconfig nfs on

chkconfig rpcbind on

 

3.启动服务:

    /etc/init.d/rpcbind start

    /etc/init.d/rpcidmapd start

       -启动rpc,RH系操作系统在6.0版本之后没有portmap服务控制rpc的启动,由于NFS和nfslock的启动需要向rpc进行注册,rpc不启动的话就会报错。

       -启动rpcbind&rpcidmap rpcbind是6.0版本后默认的RPC服务,所以要先于nfs启动。如果不启动rpcidmap则会造成用户权限的映射错误,用户的权限看起来是一串数字。

    /etc/init.d/nfs start

 

4.创建共享目录并挂载

    mkdir  /usr/local/snapshot

    mount 188.190.13.53:/usr/local/snapshot /usr/local/snapshot

   

    df -h

       -查看挂载结果

 

挂载成功后,服务机、客户机的共享目录是同步的

   

 

snapshot备份恢复操作:

 

原集群

1.设置snapshot备份文件夹:

    path.repo: ["/usr/local/snapshot"]

    并重启

    每个节点都需要有这个操作

   

2.创建快照仓库

    my_backup  --仓库名

    location  --仓库地址

    PUT /_snapshot/my_backup

    {

       "type": "fs",

       "settings": {

          "location": "/usr/local/snapshot",

          "compress": true

       }

    }

 

    查看创建的仓库

    GET /_snapshot/my_backup

 

3.创建指定索引的快照备份

    PUT /_snapshot/my_backup/snapshot_20190526data

    {

        "indices": "data20190526"

    }

 

 

    如果想要备份所有的索引

    PUT /_snapshot/my_backup/snapshot_20190526

   

    查看创建的备份

    GET /_snapshot/my_backup/snapshot_20190526data

   

    查看创建的备份的状态

    GET /_snapshot/my_backup/snapshot_20190526data/_status

 

    原集群需要迁移的索引都备份完成之后

    在所有原集群服务器上取消挂载 umount /data/backup_es,防止后续出现问题

 

 

备份恢复:

1.设置snapshot备份文件夹:

    path.repo: ["/usr/local/snapshot"]

    并重启

    每个节点都需要有这个操作

 

2.创建快照仓库

    my_backup  --仓库名

    location  --仓库地址

    PUT /_snapshot/my_backup

    {

       "type": "fs",

       "settings": {

          "location": "/usr/local/snapshot",

          "compress": true

       }

    }

 

    查看创建的仓库

    GET /_snapshot/my_backup

   

3.恢复备份

 

    按照备份中的索引名去恢复

    POST /_snapshot/my_backup/snapshot_20190526data/_restore

 

    自行指定索引名

    POST /_snapshot/my_backup/snapshot_20190526data/_restore

    {

      "indices": "*",

      "ignore_unavailable": true,

      "include_global_state": true,

      "rename_pattern": "data20190526",

      "rename_replacement": "restored_data20190526"

    }

 

 

    查看索引是否被恢复,比对新、老集群该索引数据的数量

    POST /data20190526/_search

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值