Elasticsearch的备份和恢复

转载 2015年11月21日 14:05:04

备份

Elasticsearch的一大特点就是使用简单,api也比较强大,备份也不例外。简单来说,备份分两步:1、创建一个仓库。2、备份指定索引。下面一步一步来:

1、创建一个仓库(creating the repository)

备份数据之前,要创建一个仓库来保存数据,仓库的类型支持Shared filesystem, Amazon S3, HDFS和Azure Cloud。下面以文件系统为例:

PUT http://127.0.0.1:9200/_snapshot/my_backup 
{
    "type": "fs", 
    "settings": {
        "location": "/mount/backups/my_backup" 
    }
}

上面的代码,我们创建了一个名叫my_backup 的备份,存放在本地的/mount/backups/my_backup 目录下。除了location 参数外,还可以通过max_snapshot_bytes_per_sec 和max_restore_bytes_per_sec 来限制备份和恢复时的速度,如下:

POST http://127.0.0.1:9200/_snapshot/my_backup/ 
{
    "type": "fs",
    "settings": {
        "location": "/mount/backups/my_backup",
        "max_snapshot_bytes_per_sec" : "50mb", 
        "max_restore_bytes_per_sec" : "50mb"
    }
}

注意:第一段代码用的是PUT 请求,用来创建repository,第二段代码用的是POST 请求,来修改已经存在的repository。

2、备份索引

仓库创建好之后就可以开始备份了。一个仓库可以包含多个快照(snapshots),快照可以存所有的索引,部分索引或者一个单独的索引。可以给索引指定一个唯一的名字:

PUT http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1

上面的代码会将所有正在运行的索引,备份到my_backup仓库下一个叫snapshot_1的快照中。上面的api会立刻返回,然后备份工作在后台运行。如果你想api同步执行,可以加wait_for_completion标志:

PUT http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true

上面的方法会在备份完成后才返回,如果数据量大的话,会花很长时间。

如果只想备份部分索引的话,可以加上indices 参数:

PUT http://127.0.0.1:9200/_snapshot/my_backup/snapshot_2
{
    "indices": "index_1,index_2"
}

3、删除备份

不要手动删除文件(Elasticsearch一贯主张使用api操作,尤其是大集群中),删除snapshot_2:

DELETE http://127.0.0.1:9200/_snapshot/my_backup/snapshot_2
如果备份正在后台进行,也可以直接删除来取消此次备份。

4、查看备份信息

GET http://127.0.0.1:9200/_snapshot/my_backup/snapshot_2
返回类似下面的值:
{
   "snapshots": [
      {
         "snapshot": "snapshot_2",
         "indices": [
            ".marvel_2014_28_10",
            "index1",
            "index2"
         ],
         "state": "SUCCESS",
         "start_time": "2014-09-02T13:01:43.115Z",
         "start_time_in_millis": 1409662903115,
         "end_time": "2014-09-02T13:01:43.439Z",
         "end_time_in_millis": 1409662903439,
         "duration_in_millis": 324,
         "failures": [],
         "shards": {
            "total": 10,
            "failed": 0,
            "successful": 10
         }
      }
   ]
}
如果要查看所有索引的信息,使用如下api:
GET http://127.0.0.1:9200/_snapshot/my_backup/_all

另外还有个一api可以看到更加详细的信息:

GET http://127.0.0.1:9200/_snapshot/my_backup/snapshot_3/_status
具体不说了,自己玩一下就知道了,详细内容可以查看官方的文档

恢复

备份好后,恢复就更容易了,恢复snapshot_1里的全部索引:

POST http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1/_restore

这个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 标记强制同步执行。

另外可以使用下面两个api查看状态:

GET http://127.0.0.1:9200/_recovery/restored_index_3
GET http://127.0.0.1:9200/_recovery/

如果要取消恢复过程(不管是已经恢复完,还是正在恢复),直接删除索引即可:

DELETE http://127.0.0.1:9200/restored_index_3

更多内容参看官方文档




相关文章推荐

Redis配置集群遇到问题及解决方法

配置完所有主节点后,报" ERR Invalid node address specified" 由于redis-trib.rb 对域名或主机名支持不好,故在创建集群的时候要使用ip:port的方式...

redis集群故障分析

故障表象: 业务层面显示提示查询redis失败 集群组成: 3主3从,每个节点的数据有8GB 机器分布: 在同一个机架中, xx.x.xxx.199 xx.x.xxx.200 xx.x.xxx...

redis集群实现(六) 容灾与宕机恢复

实现集群,一个重要的保证就是高可用性,要在各种软件和硬件的故障情况下仍然能够提供服务。一般来说有两种解决思路,一种是每一个节点互相之间都会进行数据交互以及监控,出现故障的时候,各个节点都可以做协调任务...

elasticsearch 备份 与 恢复

最近 同事不小心把 数据给删除了,没办法就想到怎么恢复 数据 ,后来百度 ,查看前辈的资料,自己整理一下,希望以后有用 下面具体  细节: es 快照 和 恢复 1 查看所有 快照 ...

elasticsearch数据备份与还原恢复

elasticsearch数据备份与恢复 1.在浏览器中运行http://ipaddress:9200/_flush,这样确保索引数据能保存到硬盘中。 2.原数据的备份。主要是elasticsearc...

Elasticsearch--索引备份与迁移

Elasticsearch 备份索引数据及 在不同集群之间迁移索引数据

【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)

上篇博文中我们介绍了maven下载、安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合,并我们创建一个maven的项目。

elasticsearch集群的部署

elasticsearch集群的部署 1.部署4个节点的elasticsearch 10.41.2.84     es2 10.41.2.85     es3 10.41.2.86     e...

ElasticSearch教程(三)————ElasticSearch集群搭建

这篇博文我们亲自搭建一个简单的ElasticSearch集群。配置ElasticSearch集群异常的简单,简单到甚至只需要修改两个地方:保证集群名一致和保证集群的中节点端口不重复。

Elasticsearch集群搭建实战

1. 基础配置与安装 1.1     基础环境 node110.202.20.191 node210.202.20.192 node310.202.20.193 node410.202.20...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)