前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录我删库没跑路的处理方式

记录我删库没跑路的处理方式

作者头像
余生大大
发布2022-11-02 14:17:48
3720
发布2022-11-02 14:17:48
举报
文章被收录于专栏:余生大大

就在今天刚过中午,部门经理让我处理一下一个部署项目的solr索引与实际数据不符合的问题,我们的系统在主页面用了solr进行加载,在数据库中有两篇文章是已经删除了的,而在系统主页还在展示,之前我处理过好几次这种问题,于是我轻车熟路的去检查了一遍数据库和solr的差异数据,随后到服务器上将主系统重新启动(公司内部系统)按照系统业务,在系统启动后应该更新索引,在启动完成后我检查页面发现还存在那两篇文章(现在它俩还不让我那么激动)于是我重启了solr服务再检查一遍,发现还有真是顽固不堪,我只能使出我的必杀技了:删索引,正是这一步导致了我半个下午的暴躁。

如图我先去solr里看了一下服务,没发现有什么异常,随后脑残的我就执行了删除索引命令

再次吐槽我怎么会如此操作,更过分的是我居然没有备份。

在我删除索引后我进行了服务重启,这次我万分自信的准备去写我的页面,然后.....页面空白,对,主页面一片空白所有之前的文章全都不见了,我有一点慌了,随后我去solr的query里进行查询,OMG,一条索引都没有了,但是不慌,我相信是服务没好,我重跑啊重跑,最后我认命了,看怎么解决吧。

在我询问经理及总监无果后只能靠我自己了,网上没有solr如何恢复索引,有也是之前备份好的,我再次吐槽我删库不备份的操作。(PS:在日常开发我经常会备份)

因为solr索引的数据是有依可循的,还好我们还可以操作添加,于是我提交了一篇文章,我到solr里看它的格式,它的格式是一个json(如果小伙伴们想直接操作solr可以执行把json打到Documents的json框里就可以新增了)大概是这样的:

但是各位不要把version和checkUsed加进去,那个是自己生成的。

既然已经知道了索引的格式,我就粘贴复制到Documents里测试添加一个

好,添加成功,既然知道了索引格式,那我们就可以去找源数据进行重新生成,此时的我很开心。

我先把这条数据删掉,这次我用了正确的删除方法

<delete><id>275bc7c6-7da3-410d-8d49-fe1461cd967b</id></delete> <commit/> 

删除之后去数据库找对应索引的字段,在我辛辛苦苦搜集到了所有的字段后我将他们执行输出

按照输出的数据跟上面的新增步骤我成功了在系统中展示了出来,随后我又发现了问题,没有附件,我真命苦。

我又新增了一个有附件的方案,看到格式我放弃了,就是下面的看不懂的\n\n

在我绝望时,我想起来我们提交的时候会创建或者更新索引,于是我把我自己的一个方案从数据库将状态改为未提交进行重新提交,中间的步骤就不说了,反正在solr里是重新有了,虽然这样不太好,但是这已经是当下我最方便的了,如果有大神知道怎么恢复请私信或评论,膜拜大佬们。

写此文章  以示警戒!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档