写这一篇完全是一个工作插曲,因为发生了一件工作中的事情,所以想写出来,给初入这一行的工程师、程序员引以为戒!
经过描述:
公司利用周末的时间安排对服务器上的Oracle9i进行升级,直接升级到Oracle11g,对原有的数据备份后,在Oracle11g上还原;
就是这个升级操作,问题出来了:
当对备份的dmp文件在Oracle11g上还原的时候,发现有一张的表数据为空,也就是备份的文件没有完整,这下完蛋了,3年的数据,这个表竟成了空的。
客户电话来质问,怎么办?怎么办?
- Oracle9i在服务器上已经卸载;
- 又在差不多同样的目录安装了Oracle11g
- 公司的Oracle高手老手们也无计可施了
我要说的也不是如何挽救,因为这样的问题在目前的情况和条件下没有解决办法了.
我要说的是问题产生的原因,如果我们作何防范措施,这样的问题也许就不会发生,即便发生了,也应该有完整的数据还原;
负责升级的程序员已经有3年的工作经验了,升级前对备份的数据没有检查,延续了原来的备份步骤,问题发生了,也证实了原来的备份步骤有问题,从来没有检查过备份的数据完整性问题;
你如果是这个程序员,你现在负责升级服务器上的Oracle,你会怎么做?
也许你心里早有了答案。
这也是我题目所说,你成长的代价!而针对这种情况出现的代价,确实大了些,公司只能通过高昂成本的代价来弥补客户的损失,话说回来,多少钱才能买回客户几年的数据?在客户看来,这也许根本不是钱的问题。
做为程序员,你成长到工程师,再成长到项目经理,再成长到技术总监或者其他职位,想过没有,你和公司需要付出多大的代价?
你经历多少熬夜?
你损害了多少健康?
你受了多少委屈?
你经历了多少系统BUG?
公司支付多少本不该的成本?
客户经历了多少的风险?
....
人们常说:预防比解决更重要!这句话用在软件行业一点也不错,如果你能仔细的备份数据?如果你能检查数据备份的完整性?如果…
纵使有太多的如果,也无法阻止已经发生的事实!
所以,深为程序员的你、工程师的你、项目经理的你…永远不要怕想的多,永远不要懒的再检查一遍,永远不要懒的再测试一遍…
-----------------------辛苦码字,转载注明。