ES单机索引数据莫名其妙丢失

背景:单机的ES,已有了大量的生产数据,莫名其妙隔了几天数据丢失,日志显示索引被删除。

原因:索引分片的原因。建立索引时,es默认会分配一个主分片,一个副分片,但按es规定主分片与副分片不应存在在一台服务器上,单机版的这种情况会被视为索引状态有问题,es会自动检测并删除索引。

解决方法:单机es时,修改配置,将副本分片数量设置为0即可。

PUT 127.0.0.1:9200/xxx/_settings
{
    "index": {
        "number_of_replicas": 0
    }
}

后续又出现了自动删除索引的问题,感觉应该是生命周期的问题。参考其他博主(https://blog.youkuaiyun.com/weixin_41396863/article/details/132096862)的相同问题设置禁用索引模版:

PUT /_template/disable_ilm
{
  "index_patterns": ["mpi@*"],  //索引开头匹配为mpi@的索引关闭生命周期
  "template": {
    "settings": {
      "index.lifecycle.name": null,  
      "index.lifecycle.rollover_alias": null   
    }
  }
}

我用的是6.8.0,没有_index_template,使用的_template,继续观察。

他娘的又被删除了,这次仔细查看日志,发现被删除索引后,又自动创建了不知道哪里的索引,查看索引内容后,才发现原来是服务被劫持了。

所以服务还是要做好安全措施,设置账号密码,以及公网不要对外暴露。

### Elasticsearch 索引丢失的原因 索引可能因多种因素而丢失。常见的原因包括但不限于硬件故障、网络分区、配置错误以及集群状态不稳定等[^1]。 - **硬件故障**:磁盘损坏或其他存储设备问题可能导致数据永久性损失。 - **网络分区**:当节点之间的通信中断时,可能会导致部分分片不可用或被误认为已失败并触发重新分配过程。 - **配置错误**:不当的操作如删除索引命令执行失误也会造成索引的意外移除。 - **集群健康状况不佳**:如果主节点无法正常工作,则整个集群的状态会受到影响,进而影响到各个索引的安全性和可用性。 ### 恢复方法 针对上述情况,Elasticsearch 提供了几种不同的方式来进行索引分片的恢复: #### 自动恢复机制 一旦检测到某个分片变得不可用(例如由于节点崩溃),Elasticsearch 将尝试通过现有副本来自动重建缺失的部分。这通常发生在以下几种情况下之一: - 当一个节点离线后再次加入集群; - 如果有新的节点加入了集群并且有足够的资源来容纳额外的数据副本; 此过程中涉及的具体操作取决于当前环境下的条件和策略设定[^2]。 #### 手动干预措施 对于更复杂的情形或是希望加快恢复速度的情况,可以采取一些手动手段辅助处理: ##### 使用快照功能备份与还原 利用内置工具创建定期增量式的快照保存至外部介质上,在遇到灾难事件发生之后可以从最近一次完整的存档中快速拉起服务继续运行[^3]。 ```bash POST /_snapshot/my_backup/snapshot_1/_restore { "indices": "lost_index", "include_global_state": false, "rename_pattern": "index_(.+)", "rename_replacement": "restored_index_$1" } ``` 此处展示了如何定义一个简单的 JSON 请求体用于指定要恢复的目标索引名称以及其他选项参数。 ##### 调整高级设置优化性能表现 适当调整 `cluster.routing.allocation.*` 类别的参数可以帮助提高效率,比如允许跨数据中心同步或者限制特定类型的迁移活动范围等等[^4]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值