备份步骤:
1、设置备份目录(用于存储备份文件):
进入es安装目录下面的config,编辑elasticsearch.yml加入:
path.repo: ["/usr/local/backups/es_backup"]
/usr/local/backups/es_backup:备份目录,根据自己情况进行填写
重启elasticsearch
chmod 755 /usr/local/backups/es_backup
chown es:es /usr/local/backups/es_backup
2、创建仓库:
备份数据之前,要创建一个仓库来保存数据,仓库的类型支持Shared filesystem, Amazon S3, HDFS和Azure Cloud。下面以文件系统为例:
curl -XPUT http://192.168.43.125:9200/_snapshot/es_backup
{
"type": "fs",
"settings": {
"location": "/usr/local/backups/es_backup"
}
}
上面的代码,我们创建了一个名叫es_backup 的备份,存放在本地的/usr/local/backups/es_backup目录下。
除了location 参数外,还可以通过max_snapshot_bytes_per_sec 和max_restore_bytes_per_sec 来限制备份和恢复时的速度,如下:
curl -XPOST http://192.168.43.125:9200/_snapshot/es_backup/ -d '
{
"type": "fs",
"settings": {
"location": "/usr/local/backups/es_backup",
"max_snapshot_bytes_per_sec" : "50mb",
"max_restore_bytes_per_sec" : "50mb"
}
}'
注意:第一段代码用的是PUT 请求,用来创建repository,第二段代码用的是POST 请求,来修改已经存在的repository。
3.备份索引
仓库创建好之后就可以开始备份了。一个仓库可以包含多个快照(snapshots),快照可以存所有的索引,部分索引或者一个单独的索引。可以给索引指定一个唯一的名字:
curl -XPUT http://192.168.43.125:9200/_snapshot/es_backup/snapshot_1
上面的代码会将所有正在运行的索引,备份到my_backup仓库下一个叫snapshot_1的快照中。上面的api会立刻返回,然后备份工作在后台运行。如果你想api同步执行,可以加wait_for_completion 标志:
curl -XPUT http://192.168.43.125:9200/_snapshot/es_backup/snapshot_1?wait_for_completion=true
上面的方法会在备份完成后才返回,如果数据量大的话,会花很长时间。
如果只想备份部分索引的话,可以加上indices 参数:
curl -XPUT http://192.168.43.125:9200/_snapshot/es_backup/snapshot_2 -d '
{
"indices": "index_1,index_2"
}'
4 删除备份
不要手动删除文件(Elasticsearch一贯主张使用api操作,尤其是大集群中),删除snapshot_2:
curl -XDELETE http://192.168.43.125:9200/_snapshot/es_backup/snapshot_1
如果备份正在后台进行,也可以直接删除来取消此次备份。
5 查看备份信息
直接使用GET 请求即可:
curl -XGET http://192.168.43.125:9200/_snapshot/es_backup/snapshot_1
返回类似下面的值:
{
"snapshots" : [
{
"snapshot" : "snapshot_1",
"uuid" : "qnv2G6lvRq-vPN-GCm_COQ",
"version_id" : 5000099,
"version" : "5.0.0",
"indices" : [
"userindex"
],
"state" : "SUCCESS",
"start_time" : "2017-07-24T06:22:05.873Z",
"start_time_in_millis" : 1500877325873,
"end_time" : "2017-07-24T06:22:06.168Z",
"end_time_in_millis" : 1500877326168,
"duration_in_millis" : 295,
"failures" : [ ],
"shards" : {
"total" : 5,
"failed" : 0,
"successful" : 5
}
}
]
}
6数据恢复
恢复snapshot_1里的全部索引
curl -XPOST http://192.168.43.125:9200/_snapshot/es_backup/snapshot_1/_restore
原文链接:https://blog.csdn.net/jiahao1186/java/article/details/81058022