zoukankan      html  css  js  c++  java
  • 利用别名切换索引流程Elasticsearch 7.7

    背景

    公司里面现在有es集群,由于时间过长,es集群中的某个索引过大但是未删除,一直在写入的情况下,昨天写入突然停止了,发现是索引超时的问题,这时想到通过创建一个新的索引来进行索引切换

    操作

    es 集群中旧索引的名称为testlogs,准备新建一个索引userlogs5,通过别名进行切换,前提是数据是通过别名来进行写入索引的,如果没有别名需要提前创建。

    具体操作步骤如下:

    1. 查看当前别名对应的索引
    curl -s -X GET "http://localhost:9200/_cat/aliases"
    userlogs_alias testlogs - - - -
    
    

    现在需要新建一个userlogs5,替换掉testlogs ,因为testlogs 索引过大,导致读取速度慢

    1. 新建userlogs5 索引
    curl -s -X PUT "http://localhost:9200/testlogs?pretty" -H 'Content-Type: application/json' -d '{    
      "settings": {
        "index.number_of_shards": 10,
        "index.number_of_replicas": 1
        }
      }'
    
    
    1. 查询新建的userlogs5 的 索引和分片
    
    curl -s -X GET "http://localhost:9200/_cat/indices?v" |grep userlogs5
    
    curl -s -X GET "http://localhost:9200/_cat/shards?v" |grep userlogs5 
    
    
    1. 给userlogs5 添加上索引别名
    
    curl -s -X PUT "http://localhost:9200/testlogs/_alias/userlogs_alias"
    
    curl -s -X GET "http://localhost:9200/_cat/aliases"
    
    

    这里会有两个索引对应userlogs_alias, 分别是旧索引和上面新建的索引

    1. 删除旧索引的别名,让别名只对应新的索引,完成索引切换
    curl -s -X DELETE "http://localhost:9200/testlogs/_alias/userlogs_alias"
    
    
    
    1. 查询新索引状态是否正常,是否可以写入数据既可
    curl -s -X GET "http://localhost:9200/_cat/indices?v" |grep userlogs5
    curl -s -X GET "http://localhost:9200/_cat/shards?v" |grep userlogs5 
    
    
    1. 以上就完成了索引切换的过程

    总结

    索引切换完成之后,数据会通过新的索引写入,不会影响正常数据,后面如果需要查询索引,可以使用curl 命令查询旧的索引既可。

  • 相关阅读:
    SPOJ NSUBSTR
    一点对后缀自动机的理解 及模板
    HDU 1086 You can Solve a Geometry Problem too
    HDU2036 改革春风吹满地
    POJ 2318 TOYS
    [HNOI2008]玩具装箱TOY
    HDU 3507 Print Article
    洛谷 P1231 教辅的组成(网络最大流+拆点加源加汇)
    P3984 高兴的津津
    P2756 飞行员配对方案问题(网络流24题之一)
  • 原文地址:https://www.cnblogs.com/passzhang/p/13692795.html
Copyright © 2011-2022 走看看