就在今天刚过中午,部门经理让我处理一下一个部署项目的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里是重新有了,虽然这样不太好,但是这已经是当下我最方便的了,如果有大神知道怎么恢复请私信或评论,膜拜大佬们。

写此文章  以示警戒!

记录我删库没跑路的处理方式相关推荐

  1. mysqldump全量恢复_删库不跑路-详解MySQL数据恢复

    日常工作中,总会有因手抖.写错条件.写错表名.错连生产库造成的误删库表和数据的事情发生,那么,如果连数据都恢复不了,还要什么 DBA. 相关文章 MySQL备份策略:https://segmentfa ...

  2. mysql高级-15-数据库备份与恢复(删库不跑路)

    mysql高级 前言 1.物理备份与逻辑备份 2.mysqldump实现逻辑备份 2.1 备份一个数据库 2.2 备份全部数据库 2.3 备份部分数据库 2.4 备份部分表 2.5 备份单表的部分数据 ...

  3. MySQL从删库到跑路(2):大爷的SQL私房菜

    大爷的SQL私房菜 夜色如墨,月凉如水,一轮皎洁的圆月高高地挂在夜空之上,平日里鼾声如雷的室友今夜也停止了打鼾,如此静谧的夜晚,李有为却辗转难眠. 时间悄然来到凌晨一点半,他已经在窗边站了53分钟23 ...

  4. 从删库到跑路,就是这么迅速!程序员为了报复同事删了公司数据库

    从删库到跑路,就是这么迅速!程序员为了报复同事删了公司数据库 一只有头发的程序猿 2019-08-23 09:38 做过互联网行业的都知道,数据库对公司是至关重要的,存储了大量的数据在里面,要是没有这 ...

  5. MySQL从删库到跑路(5):in and not

     "哈哈哈哈,看你这几天没来上课,我还以为你去拜什么高人为师了?原来就是这个烂番薯.臭鸟蛋的小卖部大爷学装逼,你逗我玩呢?哈哈哈哈哈"  "哈哈哈哈,一个老屌丝,一个小屌 ...

  6. 手误【删库】 == 跑路,不存在的 ——删瓦辛格

    手误[删库] ==  跑路,不存在的  --删瓦辛格 前言 今天公司服务器的宝塔打不开,让我去修(ps:宝宝委屈) 打开找一下问题所在 问题: 发现是宝塔官方的cdn好像挂掉了 解决思路: (1)本地 ...

  7. Linux 下谨慎使用 rm,避免从删库到跑路的悲剧发生

    我们该如何再次避免删库"跑路"等事件的再次发生? 对此,在企业首先做好权限管理以及多重审核机制的同时,CSDN 也曾教诸多程序员们如何在 Linux 下谨慎使用 rm,避免从删库到 ...

  8. 告别从删库到跑路,linux回收站实现

    在linux 下操作时经常需要用到rm -rf,一招不慎轻者从删库到跑路,重者到跑路机会都没有.趁放假,试着结合实际生产环境,实现一下之前一直想的win回收站机制 实现思路 alias 给rm取别名, ...

  9. 删库不跑路,MySQL 数据库恢复教程

    在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回. 在 MySQL 数据库中,我们知道 binlog 日志记录了我们对数据库的所有操作,所 ...

最新文章

  1. 读大叔深入理解javascript(2)
  2. 注意 ExecuteNonQuery() 返回值
  3. blocked java线程_Java线程状态:BLOCKED与WAITING的区别
  4. jdbc动态查询语句_Java修行第037天--JDBC技术
  5. HTML 怎么修改,怎么修改HTML
  6. DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)
  7. js经典试题之数据类型
  8. java中的工厂模式_深入理解Java的三种工厂模式
  9. android释放焦点_Android videoview抢占焦点的处理方法
  10. java的Random类详解
  11. 简要分析武汉一起好P2P平台的核心功能
  12. 日记侠:你的文章为什么阅读量会那么高?
  13. 【Mongodb】常用的一些功能
  14. 【SQL Server】模糊查询
  15. throw new Error() 真实的用法和throw error 的却别
  16. yolov5——detect.py代码【注释、详解、使用教程】
  17. 中国纺织业漂泊难定,如今向东南亚转移该担心还是惋惜?
  18. 第七代英特尔处理器安装Windows7提示“不支持的硬件”的解决方法
  19. 有些人走着走着就散了
  20. 人越长越大,智商越变越低

热门文章

  1. matlab逆变换法产生随机数_信号处理——生成给定分布随机数
  2. codeforces Intel Code Challenge Final Round (div.1 + div.2 combined)
  3. 华为折叠x2是鸿蒙系统吗,华为发布折叠旗舰Mate X2:各种黑科技设计,率先升级鸿蒙系统...
  4. Centos下Zookeeper的安装部署
  5. Unity导入图片报错File could not be read
  6. HTB Optimum[Hack The Box HTB靶场]writeup系列6
  7. 基于Jsp+Servlet的户籍管理系统(JavaWeb毕业设计、课程设计)
  8. 不安分的管家——Jenkins
  9. MATLAB之拉氏变换
  10. Java中类名虽然可以直接使用静态属性但是在使用时要注意静态属性是一个常量