http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7092|回复: 1

[Elasticsearch] Windows系统下Elasticsearch-7.12数据备份与还原

[复制链接]
发表于 2021-5-21 09:51:50 | 显示全部楼层 |阅读模式
假设我们现在的集群已经创建完成我使用的版本是官方的elasticsearch 7.12
使用的操作系统是Windows Server 2012

第一步,修改配置文件elasticsearch712\config\elasticsearch.yml

    正常只需要增加这一行即可
[C#] 纯文本查看 复制代码
path.repo: ["//172.16.31.129/temp_bak"]  

然后重新启动你的集群

我们来分析一下他的意思
[C#] 纯文本查看 复制代码
//172.16.31.129/temp_bak

我们可以看到这是一个局域网的共享目录地址
[C#] 纯文本查看 复制代码
//172.16.31.129

是局域网的IP
[C#] 纯文本查看 复制代码
temp_bak

是目录名称,由上可以得出,我们需要在局域网的某一台电脑上建立一个共享目录


由此总结一下
elasticsearch的共享目录可以是在局域网的任意一台电脑上。也就是说我们可以专门配置一台大硬盘的服务器做为备份服务器,甚至他都不需要有外网,只需要做存储即可。

第二步,创建数据仓库

   
数据仓库就是用来存储数备份数据的,每一次的备份都会存储进来,而且一个集群可以创建多个数据仓库,备份时可以备份到不同的数据仓库中来,但一般一个就行了,
elasticsearch 的备份原理是第一次备份全量备份,以后的备份只做更新,如果你没有修改和更新数据,备份文件就会很小,注意我说的是第一次,
不是第一个哦,这个意思就是说你删除了第一个备份,只剩余第一个之后的,下次再备份还是只备份更新的内容,不依赖于第一个备份
我们在这一步要创建一下数据仓库,我们先来看它所需要的代码如下


[C#] 纯文本查看 复制代码
PUT _snapshot/my_backup   
{
    "type": "fs",
    "settings": {
        "location": "//172.16.31.129/temp_bak",
        "max_snapshot_bytes_per_sec" : "1500mb", --共享地址路径,就是我们第一步时创建的共享目录地址

        "max_restore_bytes_per_sec" : "1500mb" --当从仓库恢复数据时,这个参数控制什么时候恢复过程会被限流以保障你的网络不会被占满。默认是每秒 1500mb
    }
}


我们来分析一下
[C#] 纯文本查看 复制代码
PUT _snapshot/my_backup 

第一名告诉我们这是一个put请求,
创建数据仓库的关键词是_snapshot
仓库的名称是my_backup
[C#] 纯文本查看 复制代码
        "location": "//172.16.31.129/temp_bak"   -- 共享地址路径

这段配置文件是指定仓库使用的共享目录地址
[C#] 纯文本查看 复制代码
"max_snapshot_bytes_per_sec" : "1500mb"

这句的意思是当我们备份时使用的最大带宽
[C#] 纯文本查看 复制代码
"max_restore_bytes_per_sec" : "1500mb" 

这句的意思是说我们还原是使用的最大带宽

总结:
我建议将带宽限制调整到最大,这样可以以最快的速度备份,数据量非常大的情况下这个参数非常重要,而我们用的都是内网,现在的交换机一般都是千兆的,设置大点没有问题
有人说这个会不会影响线上的查询和访问速度,当然不会,线上使用的是外网流量,和内网无关。当然也要考虑一下你的磁盘读写问题,这个其实我们都是操心过多的问题,ES本身可以处理的很好
建议备份时在访问量小的时间段进行。

第三步,备份常用的语句

    1. 备份全部索引, 备份名称 [ all_2021_04_02_am]
[C#] 纯文本查看 复制代码
PUT _snapshot/my_backup /all_2021_04_02_am


2. 检查备份 all_2021_04_02_am的进度
[C#] 纯文本查看 复制代码
GET _snapshot/my_backup/all_2021_04_02_am/_status


3. 检查当前仓库中所有的备份信息
[C#] 纯文本查看 复制代码
GET _snapshot/my_backup/_all


4. 删除快照  [ all_2021_04_02_am ]
[C#] 纯文本查看 复制代码
DELETE _snapshot/my_backup/all_2021_04_02_am


5. 快照恢复 [ all_2021_04_02_am ]
[C#] 纯文本查看 复制代码
POST _snapshot/my_backup/all_2/all_2021_04_02_am/_restore --异步不影响查看
POST _snapshot/my_backup/all_2021_04_02_am/_restore?wait_for_completion=true
-- 同步全部恢复完才可用,才可以看到数据信息

6. 监控快照[ all_2021_04_02_am]恢复情况 , 监控
[C#] 纯文本查看 复制代码
GET es_ckb_com/_recovery--单个索引的恢复情况
GET /_recovery/
--全部的恢复情况








1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2021-5-21 10:06:06 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 05:22

© 2014-2021

快速回复 返回顶部 返回列表