ES数据迁移引发的小····事故?
项目开始:
A同学,创建索引,添加数据。进行了数据的初始化操作。
某一天,A同学在数据中添加了新的索引字段,需要修改原有索引,增加索引字段,但是因为更改原有索引字段需要禁用原有索引,禁用索引又会导致当前索引下数据被删除。
索引,A同学复制了原索引,添加了新的索引字段,并执行了如下命令,将原索引数据同步到新索引中,但是并没有禁用原索引。程序从此用上了新索引。
curl --location --request POST 'http://elasticsearch.o2.org:9200/_reindex' \
--header 'Content-Type: application/json' \
--data-raw '{
"source": {
"index": "o2srh_o2sto_store_1_2"
},
"dest": {
"index": "o2srh_o2sto_store_2_2"
}
}'
后来的某一天,程序上线测试环境。
“B同学,查询接口没有返回任何数据了,抓紧看一眼!”
“嗯?”
经B同学排查,ES中存在数据,但是查询条件未命中。当去掉所有查询条件后,仍然无法命中数据信息。遂寻A同学沟通,得知test环境没有新索引后,便去创建了新索引。
查询依旧未命中。
经查,原来是B同学并未进行数据迁移操作。通过上述同步命令操作后,查询命中。