zoukankan      html  css  js  c++  java
  • es 备份与恢复

    一、数据的备份和恢复

    1.1安装es-dump
    第一步:下载node依赖包
    官网下载地址:nodejs.org
    Download | Node.js
    node-v10.16.3-linux-x64.tar.xz
    
    
    第二步解压部署软件
    tar xf  node-v10.16.3-linux-x64.tar.xz -C /opt/node
    mv node-v10.16.3-linux-x64 node
    echo "export PATH=/opt/node/bin:$PATH" >> /etc/profile
    source /etc/profile
    npm -v
    node -v
    
    第三步:指定使用国内淘宝npm源
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    
    第四步:安装es-dump
    cnpm install elasticdump -g
    
    1.2.备份命令
    1)命令参数
    # 常用参数
    --input:数据的来源地址或者文件
    --output:数据导入或到处的目标
    --type:备份的数据的类型(settings, analyzer, data, mapping, alias, template)
    
    2)备份ES数据到另一台ES
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=http://staging.es.com:9200/my_index 
      --type=analyzer
      
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=http://staging.es.com:9200/my_index 
      --type=mapping
      
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=http://staging.es.com:9200/my_index 
      --type=data
    
    3)备份ES数据到json文件
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=/data/my_index_mapping.json 
      --type=mapping
    
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=/data/my_index.json 
      --type=data
    
    4)导出ES数据并打包
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=$ 
      | gzip > /data/my_index.json.gz
    
    5)指定条件进行备份
    elasticdump 
      --input=http://production.es.com:9200/my_index 
      --output=query.json 
      --searchBody="{"query":{"term":{"username": "admin"}}}"
    

    4.导入命令

    1)导入json文件到ES

    elasticdump 
      --input=./alias.json 
      --output=http://es.com:9200 
      --type=alias
      
    # 注意:导入数据时,如果已存在相同的数据,会覆盖原来的数据,如果不存在则无影响
    
    5.备份脚本
    #!/bin/bash
    echo '要备份的机器是:'${1}
    index_name='
    test_2020-11-30
    student
    linux7
    '
    for index in `echo $index_name`
    do
    	echo "start input index ${index}"
    	elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_alias.json --type=alias &> /dev/null
    	elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_analyzer.json --type=analyzer &> /dev/null
    	elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_data.json --type=data &> /dev/null
    	elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_alias.json --type=alias &> /dev/null
    	elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_template.json --type=template &> /dev/null
    done
    
    6.导入数据脚本
    #!/bin/bash
    echo '要导入的机器是:'${1}
    index_name='
    test
    student
    linux7
    '
    for index in `echo $index_name`
    do
        echo "start input index ${index}"
        elasticdump --input=/data/${index}_alias.json --output=http://${1}:9200/${index} --type=alias &> /dev/null
        elasticdump --input=/data/${index}_analyzer.json --output=http://${1}:9200/${index} --type=analyzer &> /dev/null
        elasticdump --input=/data/${index}_data.json --output=http://${1}:9200/${index} --type=data &> /dev/null
        elasticdump --input=/data/${index}_template.json --output=http://${1}:9200/${index} --type=template &> /dev/null
    done
    
  • 相关阅读:
    WCF服务编程设计规范
    键盘虚拟键值编码表 使用keybd_Event
    RealTime Executive (REX)使用手册
    SQL Server函数大全(一)
    Windows Mobile常用程序代码(串口、图象、网络、3D、数据库、音频视频等等)
    python写简单爬虫的五种方法 (转)
    配置eclipse+PyDev(转) & 解决Eclipse中文乱码
    HDU 4003 Find Metal Mineral (树形DP)
    HDU 1054 Strategic Game
    HDU 4548 美素数 (线段树)
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/14077743.html
Copyright © 2011-2022 走看看