elasticsearch 使用快照进行备份
Elasticsearch也提供了备份集群中索引数据的策略——snapshot API.
它会备份整个集群的当前状态和数据,并保存到集群中各个节点共享的仓库中。
这个备份的进程是增量备份的,在第一次备份的基础上进行的第二次备份只备份新变化的数据。
创建elasticsearch快照进行备份。
1、 建立NFS文件共享服务
2、修改elasticsearch配置文件elasticsearch.yml,path.repo: **共享目录挂载的路径**,
3、创建快照仓库
4、创建快照
5、恢复快照到elasticsearch集群
建立NFS文件共享服务
服务端:
1、 安装NFS服务软件:
yum install rpcbind nfs-utils -y
2、 建立需要共享的目录,并修改文件权限为666, client用户访问id,在server中有,且对共享文件夹有rw权限。
mkdir /udisk/elasticsnapshot
chmod /udisk/elasticsnapshot -R
3、修改NFS服务配置文件, /etc/exports
/udisk/elasticsnapshot 10.9.121.211/(rw,sync,all_squash) 10.9.134.110/(rw,sync,all_squash) 10.9.90.103/(rw,sync,all_squash) 10.19.36.230/(rw,sync,all_squash) 10.19.63.103/(rw,sync,all_squash)
# /udisk/elasticsnapshot 为共享的目录, 10.9.121.211/ 为可以挂载此共享目录的IP,
# 参数说明:
# rw ro 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。
# sync async sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
# no_root_squash root_squash 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
# all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
# anonuid anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。
4、 配置生效 exportfs -r
5、 启动服务
systemctl start rpcbind
systemctl start nfs
客户端:
1、安装客户端软件:
yum install nfs-utils -y
2、新建挂载目录:mkdir /mnt/es
3、挂载共享目录: **为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议**
mount -t nfs 10.10.10.10:/udisk/elasticsnapshot /mnt/es -o proto=tcp -o nolock
4、每台ES机器为客户端,进行客户端配置
修改elasticsearch的配置文件elasticsearch.yml,添加下面配置,并重启
path.repo: '/mnt/es'
创建快照仓库
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mnt/es",
"compress": true, # 是否压缩
"max_snapshot_bytes_per_sec": "50mb",
"max_restore_bytes_per_sec": "50mb"
}
}
创建快照
PUT /_snapshot/my_backup/back---
{
"indices": "*", # * 表示所有index, 可以具体写哪些"logstash-iis-2017-01-07,logstash-httperr-2017-01-07",
"ignore_unavailable": true,
"include_global_state": false
}
上面的代码会将所有正在运行的索引,备份到my_backup仓库下一个叫snapshot_1的快照中。上面的api会立刻返回,然后备份工作在后台运行。如果你想api同步执行,可以加wait_for_completion标志:
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true
查看快照
get _snapshot/my_backup/back---
# 会出现一下结果
{
"snapshots": [
{
"snapshot": "logstash-2017-01-07",
"uuid": "0XM7X-HcR4u9Ou7-Gjzj5w",
"version_id": ,
"version": "5.0.2",
"indices": [
"logstash-iis-2017-01-07",
"logstash-httperr-2017-01-07"
],
"state": "SUCCESS",
"start_time": "2017-01-09T09:04:03.983Z",
"start_time_in_millis": ,
"end_time": "2017-01-09T09:05:37.524Z",
"end_time_in_millis": ,
"duration_in_millis": ,
"failures": [],
"shards": {
"total": ,
"failed": ,
"successful":
}
}
]
}
1、查看所有索引的信息,使用如下api:
GET http://127.0.0.1:9200/_snapshot/my_backup/_all
2、另外还有个一api可以看到更加详细的信息:
GET http://127.0.0.1:9200/_snapshot/my_backup/snapshot_3/_status
快照恢复
post /_snapshot/my_backup/logstash---/_restore
1、 此api额外参数:
POST http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1/_restore
{
"indices": "index_1",
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}
参数indices 设置只恢复index_1索引,参数rename_pattern 和rename_replacement 用来正则匹配要恢复的索引,并且重命名。和备份一样,api会立刻返回值,然后在后台执行恢复,使用wait_for_completion 标记强制同步执行。
2、 另外可以使用下面两个api查看状态:
GET http://127.0.0.1:9200/_recovery/restored_index_3
GET http://127.0.0.1:9200/_recovery/
3 取消恢复: 如果要取消恢复过程(不管是已经恢复完,还是正在恢复),直接删除索引即可
elasticsearch 使用快照进行备份的更多相关文章
- es快照和备份
注册前要注意配置文件加上 path.repo: ["/data/es_backup"] 然后重启es 不然会报错doesn't match any of the locations ...
- mysql数据库基于LVM快照的备份
lvm-snapshot: 基于LVM快照的备份 1.事务日志跟数据文件必须在同一个卷上 2.创建快照卷之前,要请求mysql的全局锁,在快照创建完成之后释放锁 3 ...
- MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot)
MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是快照卷 如上图所示,原卷和快照卷可以不一样大,因为 ...
- 快照方式备份MySQL数据库及举例
快照方式备份MySQL数据库及举例 作者: 红豆殺 日期: 2011 年 03 月 17 日发表评论7条评论查看评论 一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 http://www.178 ...
- 将Elasticsearch的快照备份到HDFS
1.安装Elasticsearch插件repository-hdfs 下载地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins ...
- elasticsearch snapshot快照备份和恢复
环境:mac 使用brew 安装elasticsearch 1.在 /usr/local/etc/elasticsearch/elasticsearch.yml 文件中配置快照地址 p ...
- Elasticsearch的快照备份
该文档适用于备份使用NAS的仓库类型.所有Elasticsearch集群中的服务通过挂载NAS目录来存放备份快照数据. 1.创建备份仓库 创建一个仓库名称:backup curl -H "C ...
- Elasticsearch 简单快照备份
创建仓库 POST http://10.10.14.201:9200/_snapshot/backup { "type": "fs", "settin ...
- centos下Elasticsearch数据迁移与备份
########### ### 共享创建es官方网站就一句话 ######## 1.下载 文件共享 .. rpm -i http://mirror.symnds.com/distributions ...
随机推荐
- GO数组
Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化. 数组定义: var 数组变量名 [元素数量]T ]int //定 ...
- 网页布局要注意的事项,以及CSS3需要特别注意的地方。
overflow: hidden; white-space: nowrap; text-overflow: ellipsis;隐藏超出部分,出省略号 一定要先布局!布局!布局!要先设置好色块,将位置确 ...
- 谷歌浏览器怎样把网页全部内容保存为.mhtml文件?
Chrome保存.mhtml网页文件的方法: 在 Chrome 地址栏中键入chrome://flags,回车, 在页面搜索栏输入mhtml 把“Save Page as MHTML”项修改为 Ena ...
- Tomcat报错: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myApp]]
Tomcat报错:严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apach ...
- es安装elasticsearch-sql插件
根据现有ES版本,安装对应版本的插件 [es@hxl ~]$ cd elasticsearch[es@hxl elasticsearch]$ ./bin/elasticsearch-plugin in ...
- UI自动化(四)css样式
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Python3 tkinter基础 Menu add_cascade 多级菜单 add_separator 分割线
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 聚合函数与F/Q表达式
聚合函数 取名: field + __ + 聚合函数名字 ,如:price__avg:可传关键字参数修改名字:avg=Avg("price"): aggregate:不会返回一个 ...
- 表达式引擎aviator
Aviator是一个轻量级.高性能的Java表达式执行引擎, 本文内容主要来自于官方文档 简介 包依赖 使用手册 执行表达式 使用变量 exec 方法 调用函数 自定义函数 编译表达式 访问数组和集合 ...
- CentOs系统设置python版本
一.针对当前终端生效 最近云服务器安装了centos7系统,python默认版本是2.7.5,但是习惯用anaconda3, 安装anaconda3之后将系统默认python版本更改为python3. ...