文档章节

DBA误删警示录!

l
 linux-tao
发布于 2017/09/04 00:14
字数 1991
阅读 31
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

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

DBA误删警示录!DBA误删警示录!

案例分享

误删除Oracle软件

硬件维护人员删除归档日志的时候,把节点2的整个ORACLE_HOME都删除了。在删除的时候没有注意到目录改变了,还键盘做了一个向上的动作,刚好就是刚刚使用的 rm -rf *,然后一个下意识的动作回车就这么按下去了。

空格导致的误删除

我最难忘的:root用户在根目录下rm -rf abc *,abc和*之间有个空格,结果把OS删除了。已经成为佳话。什么事情都可能发生的。从此,整个人好像变了一样,做什么事情,都三思而后行了。

空格导致的误删除

偶的教训不是很深刻,不过意义很重大:

删除一些 trace 文件,然后就直接删除rm orcl*, 结果通过VPN到生产的,网络太慢,命令刚刚慢慢的显示出来,看都没看直接按回车,结果执行的命令却是rm orcl *,因为orcl和星号中间有个空格,所以把这个目录下面所有的内容全部删除了。出了一身冷汗,试想,如过是删除数据文件目录下的内容,那立马死翘翘了到现在为止,每次都要等命令完全显示出来,从头到尾看一遍再执行。不过大多数错误都是在很繁忙或者很疲劳的情况下发生的,呵呵,看来DBA应该多休息才是。

空格导致的误授权

安装数据库的时候su – chmod 777 -R /oracle ,多输入一个空格变成chmod 777 -R / oracle ,许多系统文件属性变坏,Unix瘫痪这个错误犯了两次,用系统恢复磁带重做系统,幸好是测试机。从此以后系统部门的同事不肯给root口令。

误删除数据文件

當時,那幾天都是很疲勞的。在開發環境作數據文件分佈調整時,先cp完某個表空間所有文件到其他地方,然後作*匹配rm了此表空間在此目錄的數據文件。但是rename時發現居然有一數據文件沒cp過來,忘了說了,此表空間是system表空間。沒辦法,開發人員明天還要使用這個環境。幸虧之前有一備份,不過當時磁盤空間不是很充裕,足足折騰了一夜才搞定!想起來都後怕哦,幸虧不是正式環境了!再以後,就很少用cp,rm了,特別是rm *,一般是此類操作用mv來完成。需要rm的東西,一般mv到一臨時目錄了,再rm了!呵呵,可能都有點謹慎過頭了哦。

脚本中误删除文件

自己写了个rman备份以及备份成功后rm旧log的shell脚本,log的目录赋值給变量,结果执行時目录赋值沒成功,该变量指向了另一個目录,结果下面的东东全没了,系统立即报错(把用户的home目录删了)。幸好当时头脑还很清醒,也没误删什么重要的数据,很快就搞定了。以后脚本中要rm某个目录的东东再也不敢用变量表示了,直接hardcode进去算了,这样也放心。另外出问题后一定要冷静,定位出问题原因后再动。

误删除目录中挂载

一次生产环境linux系统,做整个项目目录的移植,cp一份确认正常执行后直接rm原来的目录,没想到子目录中居然有mount到其他server的XX目录,结果可想而知…linux啊……

误删除数据文件

刚进现在的公司不久时,做一个数据仓库项目,同事周日加了一天班把数据抽到一个大表空间里,大概 100G,第二天因为临时表空间增长很快,决定重建,这个 临时表空间的开头和那个大表空间名字是一样的,只是后面加了一个_temp,当时也是因为事情比较多,认为这是很简单的,结果输入名字就忘了输入_temp,把大表空间删除了,同事白加了一个星期天,虽然没影响什么进度(数据可以重抽),但这次教训是深刻的。个人教训:

1.rm的时候一定不要用*之类的,要用的话要看好再用,否则会有意想不到的效果。

2.人在累的时候最容易出错误,所以每一次回车都要看好。

上面仅仅是我们摘录的一小部分误删除案例,但是这些案例带来的影响有些是深远的。如何在日常工作中避免这样的低级错误发生?有一些简单可操作的建议。

防范建议

通过别名或重定义方式提示或禁用 rm 操作

或者制定一个规范,通过mv的方式进行文件转移,通过一定时间段(如一周)观察无误后,再彻底清除数据文件rm操作的危险性必须得到技术人员的充分重视。

加强数据环境的空间监控

很多用户是在空间达到100%之后才去匆忙进行空间清理,匆忙常常会带来考虑不周,误操作等意外发生。所以我们建议加强数据环境的存储空间监控,不要等到100%再去应急,应当总是使空间留有阈量,提前 进行空间维护,避免手忙脚乱的应急处理。

在紧急删除之前做好备份

如果不可避免的要进行紧急的文件删除工作,那么在条件允许的情况下,应当做好备份转移到其他主机或存储,避免无法回退恢复的灾难。通常文件的转移并不会花费太多的时间,在可能情况下用转移替代删除,在必须删除时,也要考虑能否保留最后一个备份。

避免在持续工作或者凌晨仓促的进行文件删除等工作

人在疲劳和不清醒的状态下极易犯下错误,所以应当尽量避免在连续工作的疲惫状态下,或者在梦中惊醒的凌晨迷糊状态下进行维护工作,比如文件删除,在这种状态下,极易出现误判,造成误操作。另外,在操作之前确认你的当前路径,很多灾难是由于当前路径错误导致的,在 Unix/Linux下,可以通过pwd命令来确认。

重要的操作实现人员备份

前面提到过这点建议,再次重申,在执行重要操作时,最好有两个人同时在场,互相监督审核,避免一个人草率或者考虑不周导致的误操作。

以上内容摘录自盖国强《Oracle DBA手记4 数据安全警示录》。

原文来自:http://www.yunweipai.com/archives/22227.html

本文地址:http://www.linuxprobe.com/dba-notice.html

l
粉丝 21
博文 1008
码字总数 1130720
作品 0
深圳
运维
私信 提问
加载中
请先登录后再评论。
手机淘客android demo

cuzysdk(www.cuzy.com) 是一个手机淘宝客sdk,通过使用cuzy,可以获取taobao平台的推广商品数据,移动开发者把推广的商品数据呈现给用户,用户完成商品的购买,开发者从中获取推广费用,从...

生活秀
2013/07/03
3.4K
0
深度吐槽hibernate

hibernate我很久都没有用了,最后一次用应该是3年前的一个企业项目,决定采用hibernate的并不是我,是我领导,我只是开发者。我所受的罪领导并不知道。正如我的每个hibernate项目那样,每次我...

闲大赋
2015/12/23
5.3K
56
手把手教你在Windows下搭建React Native Android开发环境

最近看到React Native好像好厉害的样子,好奇心驱使之下体验了一下并将在Window下搭建React Natvie Android环境的步骤记录下来,并有需要的朋友参考。(我都是参考官方文档的) react-native...

Common1140
2015/12/24
1.1W
45
MyBatis学习手记(二)MyBatis缓存机制

MyBatis学习手记二 前:MyBatis官方学习(中文)文档 http://mybatis.github.io/mybatis-3/zh/index.html 一,首先,要使用MyBatis必须使用官方提供的MyBatis的JAR包 链接:https://github.com...

xiaolei123
2015/09/15
2K
4
同步,异步,阻塞,非阻塞的Java例子

定义:任务A,任务B 同步:任务A和任务B之间有关联,例如任务B中途要给任务A一个数字,那么任务A或许需要等待任务B生产这个数,任务A需要等待任务B的这个动作叫做同步。 异步:事件A和事件B...

JoshuaShaw
2016/03/30
2.9K
2

没有更多内容

加载失败,请刷新页面

加载更多

将32位循环计数器替换为64位会在Intel CPU上使用_mm_popcnt_u64引起疯狂的性能偏差

问题: I was looking for the fastest way to popcount large arrays of data. 我一直在寻找最快的方法来popcount大量数据的数量。 I encountered a very weird effect: Changing the loop......

javail
51分钟前
17
0
什么是单子? - What is a monad?

问题: Having briefly looked at Haskell recently, what would be a brief, succinct, practical explanation as to what a monad essentially is? 最近对Haskell进行了简要介绍之后,关于......

富含淀粉
今天
19
0
是什么 做?

问题: What's the difference if one web page starts with 如果一个网页以...开头有什么区别 <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=ed......

技术盛宴
今天
15
0
我怎样才能存储特定文件? [重复] - How can I git stash a specific file? [duplicate]

问题: Possible Duplicate: 可能重复: How to stash only one file out of multiple files that have changed 如何从已更改的多个文件中仅存储一个文件 How can I stash a specific file ......

法国红酒甜
今天
36
0
OSChina 周一乱弹 —— 你想用屁治疗一下谁

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《Rain in the Park》- Marika Takeuchi 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
117
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部