张伟走到alix的位置边上!
“alix,这次是我错了!我写的那个SqL的删除语句,前面控制不严谨,在退货订单这种业务时,控制点没有考虑的太周全,碰到退货业务时把整张表都删除了!”张伟在alix面前怯生生的说!
“啊!张伟........“alix一脸的铁青!“程序修好了么!”
“修好了,我也测试了,就几行代码,我打包好了,发给你邮件,帮忙传下!“张伟说
“你确定?修好了?”alix再次确认道
“确定,问题找到了,修改起来很快!我还用退货订单都测试过,没问题了!”张伟说
“好!我信你!”alix盯着张伟说
“现在的问题是,如何把被删除的那400多笔数据找回来!”张伟接着说!
刚好此时,张伟的电话响了,一看是仓库的张姐:“张伟,问题解决了么!现在又到了一车货,还是收不进去啊!”
“张姐,不好意思啊,我写的程序出了点问题,需要修复,可能还要等一会!”
“啊,这样啊!是你写的程序出问题了?大概需要修改多久?”张姐问道
“是啊张姐,我写的那个程序出问题了,估计要几个小时吧!”张伟有点不好意思的回答
“这样啊!没事,姐有办法!你安心修改!收货的事,你不用管了!”张姐信誓旦旦的说,于是就挂了电话
张伟一脸狐疑的把刚和张姐的沟通,给alix说了,alix也纳闷,张姐能有什么办法!难道她会debug程序?
但是可以肯定是,业务端暂时不会找他们SAp系统组了,剩下的事就是搞定那400多条被删除的数据问题了!
这个问题要是搞不好,一切都是白搭!上线了这么久难道就功亏一篑了!这可是一个巨大的损失啊!张伟完全不敢想后果,虽然自己是个菜鸟新人!但是也知道,这个损失自己肯定是不可承受之重!
张伟想,数据应该有备份吧!于是跑到数据组那边!
结论是,数据确实有备份,每天备一次,只有昨天之前的,今天的没有,而且是整库备份的,不是单张表备份的!
于是张伟跑去和alix商量!
“alix,数据库有备份,备份到昨天晚上!其次不是单张表备的,是整个库备的,我们不能整库还原,需要还原到另外的新库,然后再进行数据转移,这样可以找回来昨天以前的数据!今天的数据,在想办法!”
“好,这个办法可行,先弄起来!”alix说
于是张伟又跑到数据组那边让他们按照这个方案开始还原!这时张伟的人品就体现出来了,平时经常帮大家干活,现在张伟只要方案确定好了,大家都立马开始行动了!
安排好后,张伟又回到自己座位上思考,如何恢复今天的数据的事情!
张伟打算闭上眼梳理下思路,突然间张伟之前具象出来的那个SAp结丹大黑球,就出现在张伟面前了!
张伟先是一惊,接着就是狂喜!有办法了!
NNd,这不就是自己现在刚探索出来的结丹第三层的内容么?表间关系啊!
第三层,是各个模块之间的表是网状结构的,每个表的数据都不是孤立存在的,都是由各个表相互勾稽、组合而成的,这个勾稽和组合的逻辑就是我们写的程序啊!
在这张网上,只有这一张表的数据被删除了,其他表的数据都在啊,这张表的数据,要么是从其他表转换过来的,要么是从这张表转到其他表,现在这张表成空洞了,那么就等于从其他表往前推导,到这张表,或者从其他表往后推导到这张表,最终就是这个表的数据啊!
简单点说,就是王五认识张伟,张伟认识李四!现在张伟不见了,王二麻子想知道,李四和王五之间有没有共同认识的人,于是叫上王五,和李四一对,就发现了,原来他们有一个共同认识的人,张伟啊!
现在张伟就打算用王二麻子的逻辑,来把中间缺失的空洞,给补上!
NNd!干!于是张伟在纸上,写下这张表,并基于第三层的结丹逻辑,把这张表相关联的表,都写在被删表的周边,因为这些程序张伟很熟悉!很快张伟就把和这个表有业务关系、逻辑关系的表都写完了,刚好5张表!
然后就是基于自己和alix写的那些程序,里面对各个字段有哪些处理,张伟都一一标注出来了!然后就是那些有逻辑处理!还好张伟debug过alix的程序,那些有逻辑张伟门儿清!
于是张伟就基于自己的SAp结丹逻辑,搞定了修复数据的思路了!张伟发现,这个修复思路不是单纯的只修复今天的,居然可以修复这个表从开始到现在、此刻的所有数据!
于是张伟说干就干,打开SqL数据库编辑器,直接用SqL写数据库的代码,开始修复数据!
张伟看了下要处理5张表,16个字段的数据!
张伟梳理了下数据处理思路,发现不能一步搞定!需要拆分成7步才行。
第一步关联3张表,提取数据!
第二步,处理这三张表关联后的4个字段!
.......
张伟把这7步的数据找回算法梳理清楚了!同时在自己大脑里,模拟运行了2遍!发现有瑕疵,又优化了3个步骤的算法!
又在大脑里按照这7个步骤模拟运行了2遍,发现没有问题了!
开干!
张伟在数据库里,没有使用原表,copy了一个一模一样的表,用自己这7步法,开始一步一步的编写SqL代码,执行SqL代码!
思路有了,只是写代码,执行代码,很快就搞定了!
7步执行完,张伟在copy的那张表一查,有439条数据!NNd有点像!但是不能保证是不是正确的!
一通操作下来,张伟看了看表,时间居然只过去了26分钟!
现在张伟需要验证下自己通过算法找回来的数据,是不是正确的!于是张伟就去看那边数据库还原的兄弟搞的如何了!
对方说还差几分钟才能还原完成!
此时张伟紧张的神经才有点松弛了!小小的放松了下!手心的汗水也稍微少了点,张伟看着鼠标上的汗珠,还在顺着鼠标边沿往下滴!汗水甚至在黑色的鼠标垫上,都浸湿出几圈湿漉漉的汗渍了!
可见张伟已经紧张到什么程度了!
不过张伟现在正是放松状态下的遐想!
NNd!张伟想,自己凝聚出来的那颗SAp金丹,真不错,又帮自己搞定一个大问题,真不错啊!
但是张伟觉得自己不喜欢金色!张伟想笑,什么时候了,还在想颜色的问题!
数据、程序、科技应该用蓝色,而且SAp得logo本来就是蓝色,以后我结的这颗丹就叫,SAp蓝丹了!
“蓝丹“!好我结丹,就是蓝色的,不是金色的!
小小的一个走神就把结丹的颜色给定下来了!好!
“张伟,数据库还原好了!”数据组的同事打断了张伟的遐想!
“好的,多谢!”
张伟立马打开了数据库,用自己通过算法找回来的439条数据,和数据库还原回来的371条数据进行了对比!
张伟把时间都限制在昨天晚上,自己439条数据中,少了3条数据!只找到368条,张伟把具体少的3条找到了!
分析了下,发现自己的找数算法逻辑还是有点漏洞,于是修改了下算法!马上这个数据就对上了!自己通过算法也找到了371条!
数据条数对上了,就看数据的具体字段了,张伟写了一个比对算法!又发现了2个字段有差异!
张伟把有差异的字段,挑选出来,分析了数据,发现是自己的找数算法程序逻辑还是有点问题,需要修复下!
很快的张伟把修复好的算法,运行了一遍!
张伟用比对算法再次比对了一下,截止昨天晚上的数据,张伟用算法找回的数据,和数据库还原回来的数据,一模一样了!
大喜!
然后张伟放开了时间,用算法找回来的数据,张伟最后确认了下,443条数据!比最开始的439条数据,增加了4条数据!
完美!
张伟把这443条数据,通过SqL语法,直接copy到自己删除的那张表里,就等于现在正式环境的表又有443条数据了!
张伟立马打电话给仓库的张姐!
“张姐,程序修改好了!你们可以用系统了!”
因为这个是直接修改的数据库,不用alix传请求!只要修复好用户就可以直接使用的!
“啊,这么快!我才手工收了1车货,你就搞完了?”
“啊,还能手工收货啊?”张伟对张姐的操作有点狐疑
“肯定了,有时系统不行,我们就先手工收,然后再补录系统!都不耽误!”张姐解释道
“张姐威武啊!学到了!”张伟恭维道!
然后张伟立马走到alix面前!
“领导,把数据都找回了!也让用户开始用系统了!”
“啊,这么快,你怎么搞的!”
张伟回到座位把自己画的那张纸,就给alix一通的解释,基于数据间的关系,和逻辑联系,划分了7个步骤,然后对这7个步骤,逐个的写程序.........最后就找回来,443条数据!
同时还说了自己通过算法找回的数据,和还原回来的数据,进行了一对一比对,都是一样的!
“我靠!张伟!Nb!服了你啊!”alix一脸的震撼!
“能搞坏,也能修复!厉害!但是不能有下次了啊!你这个搞一场,搞的大家都心脏痛啊!”alix补充道!
“好的,多谢领导!保证不再犯!”
张伟回到位置上坐下,看了下时间,从开始发现错误到数据修复完成,大概43分钟左右搞定!
张伟彻彻底底体会了一把过山车般的跌宕起伏,现在就像被抽干了空气的充气娃娃,瘫软的躺在椅子上,目光呆滞的看着天花板,再也不想有任何的动作了!