今天在我的技术群内,不知道怎么有人就说起来自己以前一些失误的操作。有全表更新的,有误删除数据的等等。我也想起来自己也干过几次丢人的事情(谁当初不是个宝宝啊)
1.刚工作时候,那时候用Oracle8i 9i.也不懂数据库。数据越写越多,报表空间不足,自己查了如何增加数据文件,如何扩展表空间,当时还很得意。但是没想过磁盘空间不足怎么办?后来还真遇到了,然后呢就用delete去删除。删除以后数据又能写了,又自以为是了。天真的以为自己解决了问题,但是懂的人都知道,这种维护方法做下去是性能越来越差的。无奈当时不懂啊,没人教,全是自学。以后才知道这叫碎片。那个时候这么老的数据库没有碎片整理的。
2004年有一次在佛山,*说系统慢的不行了。最后我建议*把新建一个数据库,我利用晚上下班时候给他们做一次数据库导出,再导入。这样就可以消除碎片了。那时候我这么说,*就说这么干吧。不像现在做一个事情,没有十几个人讨论评审都不让动。这是我工作以来第一次通宵没睡觉的工作。下面这张照片就是当天的留念。
这个数据库是交通违法数据,50万条数据(带图片的),一条200元。也有个上百GB的数据量。也就是说这个数据库价值1个亿。我当时怎么就 敢想敢干呢?佛山的警察也是对我充分的信任。第二天他们一上班,用的那叫一个爽。几个科室和*领导当晚吃饭还请我,知道我不吃猪肉还特意给我点了我能吃的。
虽然离开这个行业已经好多年了,不知道当年我定时任务不停地删除一些过期的数据的job是不是还在运行。其实这种场景应该是分区治理,数据库中千万别delete这种方式去清理数据。如果有人看到我之前留下的定时任务,饶恕我吧(我最北沈阳,最难海口、最东舟山、最西乌鲁木齐几百个*系统的数据库)
2.有一次去看一个没上线的数据库。当时存储供应商干的乱七八糟,我从阵列管理软件中看的莫名其妙,我觉得有几个划分的不对。我还找之前的人确认了一下,这个不太对,我想改改行不行?都说行,我就干了。干了以后一看数据库还能用。然后就继续干其他的了。过了一会,有人说,怎么点击系统有的能正常出数据,有的出错啊。我过去一看还真是。我当时打开toad,发现有几个数据文件点击是可以看到大小的。有些一点就说数据文件不存在。我想该不会是我刚才干的吧?后来又大了几个电话,确认了我处理的一个阵列上有一部分数据文件。(这伙人之前是怎么干的?),之所以我操作完还能用,是因为数据库还在运行着。我想完了,那我重启看看。果然不出所料,根本起不来。好在项目经理去和*说,现在测试的有点问题,数据要清理。大同的*想,反正没使用,你们清理就清理吧。我赶紧的重新建库,当时也是背后一身汗啊。
所以后来做这种事情都是战战兢兢,如履薄冰,有敬畏之心。