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 命令查询旧的索引既可。

  • 相关阅读:
    Eclipse添加注释简介
    git config配置文件
    ndk开发教程以及问题解决方案
    PATH路径出错导致任何命令都找不到解决方法
    git详细教程
    ssh相关操作
    ORM SQLAlchemy 表于表的关系
    SQLAlchemy 使用
    ORM SQLAlchemy 简介
    LUA基础
  • 原文地址:https://www.cnblogs.com/passzhang/p/13692795.html
Copyright © 2011-2022 走看看