DBA生存警示:备份级误操作案例及防范建议

编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》一书收录了大量现实案例,现在整理分享给大家,共为警示。

我们曾经反复强调:备份重于一切

可是很多人在执行备份时,依然会遭遇因为备份而导致的误操作故障。

案例分享


1.无备份导致数据损毁

刚才同事告诉我,以前我的顶头上司,IT经理引咎辞职了,仔细一问,原来是我的继任没有做备份,资料全部损毁,这也是我今年第二次见到这种情况。当时走的时候,招了一个月也没有招到合适的,后来听同事说,从香港找了一个DBA,一个月几万块,没想到没出多久就出了这么大的事。

以前也有客户的DBA损毁数据库而且没有做备份,导致工厂停产半个月,IT经理走人的教训,现在不敬业的人还是那么多。

2.误操作TAR覆盖数据

半夜加班,系统上线和数据迁移一起,在开始前进行了冷备,当上线和数据迁移要完的时候,当时不知道怎么想的,可能是半夜脑壳发昏,就解压TAR把当前文件数据覆盖了,幸好当时意识到了,终止了解压,并且被覆盖的数据文件还没有数据,当时赶快把数据文件离线,删除,重建,不然要被旁边的同事海揍。

3.备份时文件缺失

数据库运行在非归档,冷备时少了一个文件(别的同事做的备份),过了几天恢复数据库,用当时的冷备恢复,结果数据库起不来,丢失的文件还包括很多重要应用字典数据,没办法,重新输入这些字典数据,花了三天三夜。

还有几个月前做测试,连到了生产库,把几个表空间删除了,出了一身冷汗!幸好是晚上,没有什么应用,及时恢复了数据库。

4.断电导致数据丢失

有一次大厦停电,通知半夜12点停电,我就懒得去动数据库了,没有备份,结果第二天早上,磁盘阵列启动不了了。丢了周五一天的数据。我才发现不能想当地认为什么都不用做,这个错误让我更加记住了大家常说的“备份重于一切”。

5.误操作覆盖导出文件

imp用错了exp,结果把原来的dmp文件覆盖了。数据丢了,幸运的是数据不太重要。历史账单数据,一年刚好到期,可以封存了。当时我很想告诉领导是我误操作,不过最后还是没有勇气去承认。人就是人,不是神。

防范建议


1.执行的操作系统命令需要经过测试

很多操作系统级别的命令都具有一定的危险性,如rm、mv、tar等,如果不理解这些命令的具体含义和参数意义,那就可能犯下无法挽回的错误。

所以,需要执行的每条命令,都要经过测试,确保其有确定的输出结果,然后才去执行它。如果你对某个命令没有把握,那永远不要去执行它。

2.执行备份并且进行备份检查

很多企业觉得有了备份就高枕无忧了,可是备份和“有效备份”还是两回事,我们一定要检查备份成功与否,备份是否有效,这样才能保证危急关头有“备”无患。

3.通过文档准备完善操作流程

在执行任务之前,准备文档手册,通过测试验证可行性,并且在执行时按照文档操作,确保不要节外生枝。

俗话说:台上一分钟,台下十年功。只有在台下做好准备,台上的一分钟表演才能完美流畅;而如果台下只花一分钟准备,那么台上来收尾恐怕就要十年功。这样的案例比比皆是。所以,多做些准备工作,磨刀不误砍柴工。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2016-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

3038
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

4837
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2636
来自专栏落花落雨不落叶

canvas画简单电路图

66411
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

32810
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

7248
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5706
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4898
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4095

扫码关注云+社区