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
    
  • 相关阅读:
    2018/01/01Java基础学习——如何通过dos系统的javadoc命令生成API文档
    Go语言的big包实现大整数运算
    HDU5100 Chessboard【组合数学】
    HDU5143 NPY and arithmetic progression【暴力】
    UVALive5402 UVA579 Clock Hands【水题】
    UVA11799 Horror Dash【求极值+水题】
    HDU1017 ZOJ1152 A Mathematical Curiosity【暴力】
    UVALive2536 POJ1248 HDU1015 ZOJ1403 Safecracker【密码+暴力】
    POJ1284 Primitive Roots【原根】
    UVA11340 Newspaper【输入流+map】
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/14077743.html
Copyright © 2011-2022 走看看