近期由于elasticsearch的版本升级,需要研究下elasticsearch的快照(snapshot)和恢复(restore)功能。
 
  先说下背景,目前环境采用的是elasticsearch1.0版本,如果升级2.2版本,数据必须进行迁移,看官方文档给的建议是采用snapshot和restore的api操作。
 
  同时说下elasticsearch2.2版本的启动不可以采用root账号,必须建立单独的账号才可以启动,否则会报以下错误
  Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
 
  接下来说下创建备份的过程(es1.0版本的操作):
 
        1. 确保索引数据保存到硬盘中,运行以下命令:

curl -X 'localhost:9200/_flush'

        
       2. 创建备份的目录,如"/opt/es_backups/my_backup",用户需要对该目录拥有读写权限
 
       3. 创建一个仓库(repository),命令:
    curl -X PUT 'localhost:9200/_snapshot/my_backup' -d '        
    {
              "type": "fs",
              "settings": {
              "compress": "true",
              "location": "/opt/es_backups/my_backup"
              }
         }' 
    4. 备份索引,命令:
    curl -X PUT 'localhost:9200/_snapshot/my_backup/snapshot_1?waif_for_comletion=true'

    5. 查看备份状态,命令:

    curl -X GET 'localhost:9200/_snapshot/my_backup/snapshot_1?pretty'

    curl -X GET 'localhost:9200/_snapshot/my_backup/snapshot_1/_status?pretty'

  

  恢复备份的过程(es2.2版本的操作):

    1. 停止es1.0集群的运行,使用kill命令杀掉es相关进程
 
    2. es2.2版本还原1.0版本备份最重要的就是创建1.0版本备份目录相同的仓库,但是从es1.6开始,创建仓库,必须修改elasticsearch.yml文件,增加结点"path.repo",同时,es2.2的运行用户也必须有备份目录的读写权限。
     elasticsearch.yml文件中增加的节点内容为:

    path.repo: ["/opt/es_backups"]

     运行创建仓库的命令,和上面备份第3点的命令完全一致。
 
    3. 恢复备份,命令如下:

    curl -X POST 'localhost:9200/_snapshot/my_backup/snapshot_1/_restore?pretty'

 
    4. 查看恢复的状态:

      curl -X GET 'localhost:9200/_recovery?pretty'

 
  参考内容:
  Scripting and Security:https://www.elastic.co/blog/scripting-security

elasticsearch1.0 升级2.2的数据备份和恢复的更多相关文章

  1. InfluxDB数据备份和恢复方法,支持本地和远程备份

    本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Influ ...

  2. tableau server 数据备份及恢复

    tableau server 数据备份及恢复 一.数据备份 1> win+r,进入到dos命令行模式 2> 进入到tableau server的bin路径下 cd C:\Program F ...

  3. redis入门(15)redis的数据备份和恢复

    redis入门(15)redis的数据备份和恢复

  4. Salesforce 数据备份和恢复小知识

    数据备份的类型 在Salesforce中可以使用多种API进行数据备份,它们是: REST API SOAP API Buik API Metadata API 数据备份有三种选择: 完全备份(Ful ...

  5. innobackupex不停库的数据备份并恢复到别的服务器上【转】

    1.innobackupex原理: 备份原理 1).首先会开启一个后台检测进程,实时检测myql redo的变化,一旦发现redo中有新日志写入,立即将日志记入后台日志文件xtrabackup_log ...

  6. Oracle 数据备份、恢复以及导入时表空间不存在的解决方案

    一.数据备份(导出) 1.exp命令导出dmp文件(exp -help查看帮助信息) 命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jd ...

  7. HBase数据备份及恢复(导入导出)的常用方法

    一.说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产.备份Hbase时的难点是其待备份的数据集可能非 ...

  8. mysql数据备份及恢复

    备份工具 mysqldump mysqldump是mysql和mariadb上最好的备份工具之一,免费开源. mysqldump 首先查询每个数据库和每个表的结构与数据,然后把查出的所有内容导出到文本 ...

  9. 涂抹mysql笔记-数据备份和恢复

    <>物理备份和逻辑备份<>联机备份和脱机备份<>本地备份和远程备份<>完整备份和增量备份<>完整恢复和增量恢复<>复制表相关文件 ...

随机推荐

  1. Nginx图片剪裁模块探究 http_image_filter_module

    官方地址:http://nginx.org/en/docs/http/ngx_http_image_filter_module.html 煮酒品茶:前半部安装和官方说明,后半部分实践 #yum ins ...

  2. ubuntu14.04中国源

    deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse deb http://cn.ar ...

  3. 【转】javax.net.ssl.SSLHandshakeException(Cas导入证书)

    本文转自:http://my.oschina.net/laiwanshan/blog/159057 一.报错: javax.net.ssl.SSLHandshakeException 二.原因分析:C ...

  4. java常用算法

    冒泡排序: //降序 public static int[] bubbleSort(int[] array){ for(int i = 0; i < array.length; i++){ in ...

  5. Http 协议Header

    Responses 部分 Header 解释 示例 Accept-Ranges 表明服务器是否支持指定范围请求及哪种类型的分段请求 Accept-Ranges: bytes Age 从原始服务器到代理 ...

  6. (转)SQL SERVER的锁机制(四)——概述(各种事务隔离级别发生的影响)

    六.各种事务隔离级别发生的影响 修改数据的用户会影响同时读取或修改相同数据的其他用户.即这些用户可以并发访问数据.如果数据存储系统没有并发控制,则用户可能会看到以下负面影响: · 未提交的依赖关系(脏 ...

  7. 字母排列_next_permutation_字典序函数_待解决

    问题 B: 字母排列 时间限制: 1 Sec  内存限制: 64 MB提交: 19  解决: 5[提交][状态][讨论版] 题目描述 当给出一串字符时,我们逐个可以变换其字符,形成新的字符串.假如对这 ...

  8. atom初体验

    今天捣鼓了一天的atom,也测试了那个传说中绚丽的敲代码方式,感觉就是装逼利器,这里总结一下今天捣鼓的过程吧 首页,下载atom,这个在地址是:搜索 之后是安装插件,在这之前如果下载的是.exe的,那 ...

  9. Machine Schedule(poj 1274)

    题目大意:有n个奶牛和m个谷仓,现在每个奶牛有自己喜欢去的谷仓,并且它们只会去自己喜欢的谷仓吃东西,问最多有多少奶牛能够吃到东西 输入第一行给出n与m 接着n行 每行第一个数代表这个奶牛喜欢的谷仓的个 ...

  10. C++实现大数据乘法

    结构体定义与封装 struct bigdatacom { private : ]; ]; public : void init(const char *str1,const char *str2) { ...