ITPub博客

首页 > IT职业 > IT生活 > 惊心动魄:只有失去了才知道珍惜

惊心动魄:只有失去了才知道珍惜

原创 IT生活 作者:xunzhaoxz 时间:2010-03-04 03:26:33 0 删除 编辑

惊心动魄:只有失去了才知道珍惜

《只有失去了才知道珍惜》一文地址:http://www.anysql.net/life/love_after_lost.html

  作为一个DBA,最重要的就是保证数据的安全、有效,倘若不能做到安全有效,那么建议改行吧,墨菲定律!!

  然而在一个项目、一个系统中,在数据安全方面,除了DBA以外,其他所有有机会接触到数据库,对数据有写权限的开发人员、管理人员,包括用户、领导等,都是本文操心的对象。DBA误操作导致数据丢失的案例已经见得不少,而上层应用系统的开发人员误操作造成的灾难,同样值得我们花费精力认真考虑。eygle提出的《DBA生存之四大法则》适用于上文提到的所有对象:

1.备份重于一切
我们必需知道,系统总是要崩溃的,没有有效的备份只是等哪一天死!我经常开玩笑的说,唯一会使DBA在梦中惊醒的就是,没有有效的备份.

[@more@]

2.三思而后行
think thrice before you act

任何时候都要清楚你所做的一切,否则宁可不做!有时候一个回车,一条命令就会造成不可恢复的灾难,所以,你必需清楚确认你所做的一切,并且在必要时保护现场.

3.rm是危险的 要知道在UNIX/Linux下,这个操作意味着你可能将永远失去后面的东西,所以,确认你的操作!!!
太多的人在 "rm -rf" 上悲痛欲绝,当年写下这条守则时,是一个凌晨被一个朋友吵醒,他说误操作rm -rf删除掉了200G的数据库,并且没有备份.

我当时能告诉他的只有一句话:要保持冷静.

4.你来制定规范
良好的规范是减少故障的基础。所以,做为一个DBA,你需要来制订规范,规范开发甚至系统人员,这样甚至可以规避有意或是无意的误操作.减少数据库的风险.

我们知道,在管理良好的数据库服务器上,rm -rf甚至可能是不允许使用的.

  今天遇到的案例是:当前有网络上完全物理隔离的一个生产环境和一个测试环境,测试环境是新部署的RAC环境,为了测试应用系统是否支持集群数据库,计划利用开发人员PC上的开发环境连接到测试环境中进行测试,但是开发人员为图方便(不用两根网线在两个信息点间来回切换),在自己办公室里私自接了个小HUB,把原本物理隔离的两个网络给接到同一个HUB上,这样PC上只要修改IP就可以进行网络的切换,多省事!!!然而灾难就是这么产生的!!

  原先导入测试库上的数据有问题,需要删除重新导入,开发人员切换到原本已经打开的PL/SQL窗口,选中一个用户,直接右键drop,整个过程不到1分钟,这下杯具了,等操作完成后才缓过神来,问问身边的另一个开发人员,“我们现在生产库上使用的用户是不是***,库名是不是***”,“。。。”,话还没说完,系统终端用户电话就进来了,说系统突然中断用不了,怎么回事?原来下面的业务人员正在使用这个系统办理业务呢,而开发人员drop的不是测试库,而是生产库,从drop到电话进来,不到3分钟时间,杯具!!!

  本文不讨论这次事故造成的灾难如何,因为每个应用环境、每个数据库的重要性、价值都是无法估算,而是从技术和吸取教训的角度看待这次事故,造成这次事故的原因分析如下:

  (1)生产环境和测试环境本是物理隔离,就是为了避免测试环境对生产环境造成干扰,然而为了图省事,用个HUB又把网络给连上了,这是首要原因。

  (2)三思而后行 如果执行drop之前慎重点,认真核对,检查系统所连接的网络环境,辨别生产环境、测试环境,就不会有这样的灾难发生。

  (3)灾难产生了,总有补救的措施,然而最后的希望又被掐灭了。生产库竟然从一开始就没有启用归档,并且drop之后不知出何考虑,马上用昨天的一个备份集直接给恢复回去,于是从技术上进行补救的希望被掐灭了。

  eygle除了提出以上的四大法则之外,还提出了《有些习惯DBA需要养成》等等,都是我们以上所有对象都需要具备的,另外建议在以下几种情况下也不要进行关键的数据操作:

  (1)疲劳的时候 因为疲劳时容易走神、精力不集中等等,容易执行了操作后才缓过神来,然而杯具已经产生了;

  (2)情绪不好的时候 情绪不好时做事都精力不集中,心不在焉,容易误操作。

  (3)思绪混乱的时候 思路不清晰,头绪紊乱时容易误操作,看错、看走眼等等。

  (4)进行关键操作期间,最好不要把手机放身上,关机了或者放在不干扰的地方。

  (5)没有准备好完善的实施方案时,不要进行关键操作,实施方案必须对每一个步骤都考虑如何回滚,失败了怎么处理?出现新的突发事件怎么办?是否准备好备机以应对系统瘫痪?备机的配置、性能是否能够满足峰值时刻的业务需求?必须确保备机能够正常服务,满足需求了才能对原有的环境进行操作,否则宁可不做。

  有时做了100的工作量,其中有99是为了应对意外事故的,只有1的工作量是真正进行实施操作的,然而为了这个1的顺利完成,为了确保数据、系统的安全性,99的工作量还是值得的、是必须的,否则为了节省工作量,那就是真的只有失去了才知道珍惜.......

 墨菲定律!!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22085031/viewspace-1031673/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-11-09

  • 博文量
    27
  • 访问量
    698540