《DBA生存警示:系統(tǒng)級(jí)誤刪除案例及防范建議》要點(diǎn):
本文介紹了DBA生存警示:系統(tǒng)級(jí)誤刪除案例及防范建議,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
編輯手記:對(duì)于資深的老DBA們,他們?cè)诼L(zhǎng)的職業(yè)生涯中養(yǎng)成了很多稀奇古怪的守則,以在復(fù)雜多變的環(huán)境中“幸存”,這源于無(wú)數(shù)血淚的教訓(xùn),我曾經(jīng)在《數(shù)據(jù)安全警示錄》一書(shū)收錄了大量現(xiàn)實(shí)案例,現(xiàn)在整理分享給大家,共為警示.
誤刪除Oracle軟件
硬件維護(hù)人員刪除歸檔日志的時(shí)候,把節(jié)點(diǎn)2的整個(gè)ORACLE_HOME都刪除了.在刪除的時(shí)候沒(méi)有注意到目錄改變了,還鍵盤(pán)做了一個(gè)向上的動(dòng)作,剛好就是剛剛使用的 rm -rf *,然后一個(gè)下意識(shí)的動(dòng)作回車(chē)就這么按下去了.
空格導(dǎo)致的誤刪除
我最難忘的:root用戶(hù)在根目錄下rm -rf abc *,abc和*之間有個(gè)空格,結(jié)果把OS刪除了.已經(jīng)成為佳話(huà).什么事情都可能發(fā)生的.從此,整個(gè)人好像變了一樣,做什么事情,都三思而后行了.
空格導(dǎo)致的誤刪除
偶的教訓(xùn)不是很深刻,不過(guò)意義很重大:
刪除一些 trace 文件,然后就直接刪除rm orcl*, 結(jié)果通過(guò)VPN到生產(chǎn)的,網(wǎng)絡(luò)太慢,命令剛剛慢慢的顯示出來(lái),看都沒(méi)看直接按回車(chē),結(jié)果執(zhí)行的命令卻是rm orcl *,因?yàn)閛rcl和星號(hào)中間有個(gè)空格,所以把這個(gè)目錄下面所有的內(nèi)容全部刪除了.出了一身冷汗,試想,如過(guò)是刪除數(shù)據(jù)文件目錄下的內(nèi)容,那立馬死翹翹了到現(xiàn)在為止,每次都要等命令完全顯示出來(lái),從頭到尾看一遍再執(zhí)行.不過(guò),大多數(shù)錯(cuò)誤都是在很繁忙或者很疲勞的情況下發(fā)生的,呵呵,看來(lái)DBA應(yīng)該多休息才是.
空格導(dǎo)致的誤授權(quán)
安裝數(shù)據(jù)庫(kù)的時(shí)候su – chmod 777 -R /oracle ,多輸入一個(gè)空格變成chmod 777 -R / oracle ,許多系統(tǒng)文件屬性變壞,Unix癱瘓這個(gè)錯(cuò)誤犯了兩次,用系統(tǒng)恢復(fù)磁帶重做系統(tǒng),幸好是測(cè)試機(jī).從此以后系統(tǒng)部門(mén)的同事不肯給root口令.
誤刪除數(shù)據(jù)文件
當(dāng)時(shí),那幾天都是很疲勞的.在開(kāi)發(fā)環(huán)境作數(shù)據(jù)文件分佈調(diào)整時(shí),先cp完某個(gè)表空間所有文件到其他地方,然後作*匹配rm了此表空間在此目錄的數(shù)據(jù)文件.但是rename時(shí)發(fā)現(xiàn)居然有一數(shù)據(jù)文件沒(méi)cp過(guò)來(lái),忘了說(shuō)了,此表空間是system表空間.沒(méi)辦法,開(kāi)發(fā)人員明天還要使用這個(gè)環(huán)境.幸虧之前有一備份,不過(guò)當(dāng)時(shí)磁盤(pán)空間不是很充裕,足足折騰了一夜才搞定!想起來(lái)都後怕哦,幸虧不是正式環(huán)境了!再以後,就很少用cp,rm了,特別是rm *,一般是此類(lèi)操作用mv來(lái)完成.需要rm的東西,一般mv到一臨時(shí)目錄了,再rm了!呵呵,可能都有點(diǎn)謹(jǐn)慎過(guò)頭了哦.
腳本中誤刪除文件
自己寫(xiě)了個(gè)rman備份以及備份成功后rm舊log的shell腳本,log的目錄賦值給變量,結(jié)果執(zhí)行時(shí)目錄賦值沒(méi)成功,該變量指向了另一個(gè)目錄,結(jié)果下面的東東全沒(méi)了,系統(tǒng)立即報(bào)錯(cuò)(把用戶(hù)的home目錄刪了).幸好當(dāng)時(shí)頭腦還很清醒,也沒(méi)誤刪什么重要的數(shù)據(jù),很快就搞定了.以后腳本中要rm某個(gè)目錄的東東再也不敢用變量表示了,直接hardcode進(jìn)去算了,這樣也放心.另外出問(wèn)題后一定要冷靜,定位出問(wèn)題原因后再動(dòng).
誤刪除目錄中掛載
一次生產(chǎn)環(huán)境linux系統(tǒng),做整個(gè)項(xiàng)目目錄的移植,cp一份確認(rèn)正常執(zhí)行后直接rm原來(lái)的目錄,沒(méi)想到子目錄中居然有mount到其他server的XX目錄,結(jié)果可想而知…linux啊……
誤刪除數(shù)據(jù)文件
剛進(jìn)現(xiàn)在的公司不久時(shí),做一個(gè)數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目,同事周日加了一天班把數(shù)據(jù)抽到一個(gè)大表空間里,大概 100G,第二天因?yàn)榕R時(shí)表空間增長(zhǎng)很快,決定重建,這個(gè) 臨時(shí)表空間的開(kāi)頭和那個(gè)大表空間名字是一樣的,只是后面加了一個(gè)_temp,當(dāng)時(shí)也是因?yàn)槭虑楸容^多,認(rèn)為這是很簡(jiǎn)單的,結(jié)果輸入名字就忘了輸入_temp,把大表空間刪除了,同事白加了一個(gè)星期天,雖然沒(méi)影響什么進(jìn)度(數(shù)據(jù)可以重抽),但這次教訓(xùn)是深刻的.個(gè)人教訓(xùn):
1.rm的時(shí)候一定不要用*之類(lèi)的,要用的話(huà)要看好再用,否則會(huì)有意想不到的效果.
2.人在累的時(shí)候最容易出錯(cuò)誤,所以每一次回車(chē)都要看好.
上面僅僅是我們摘錄的一小部分誤刪除案例,但是這些案例帶來(lái)的影響有些是深遠(yuǎn)的.如何在日常工作中避免這樣的低級(jí)錯(cuò)誤發(fā)生?有一些簡(jiǎn)單可操作的建議.
1. 通過(guò)別名或重定義方式提示或禁用 rm 操作
或者制定一個(gè)規(guī)范,通過(guò)mv的方式進(jìn)行文件轉(zhuǎn)移,通過(guò)一定時(shí)間段(如一周)觀察無(wú)誤后,再?gòu)氐浊宄龜?shù)據(jù)文件rm操作的危險(xiǎn)性必須得到技術(shù)人員的充分重視.
2. 加強(qiáng)數(shù)據(jù)環(huán)境的空間監(jiān)控
很多用戶(hù)是在空間達(dá)到100%之后才去匆忙進(jìn)行空間清理,匆忙常常會(huì)帶來(lái)考慮不周,誤操作等意外發(fā)生.所以我們建議加強(qiáng)數(shù)據(jù)環(huán)境的存儲(chǔ)空間監(jiān)控,不要等到100%再去應(yīng)急,應(yīng)當(dāng)總是使空間留有閾量,提前 進(jìn)行空間維護(hù),避免手忙腳亂的應(yīng)急處理.
3. 在緊急刪除之前做好備份?
如果不可避免的要進(jìn)行緊急的文件刪除工作,那么在條件允許的情況下,應(yīng)當(dāng)做好備份轉(zhuǎn)移到其他主機(jī)或存儲(chǔ),避免無(wú)法回退恢復(fù)的災(zāi)難.通常文件的轉(zhuǎn)移并不會(huì)花費(fèi)太多的時(shí)間,在可能情況下用轉(zhuǎn)移替代刪除,在必須刪除時(shí),也要考慮能否保留最后一個(gè)備份.
4. 避免在持續(xù)工作或者凌晨倉(cāng)促的進(jìn)行文件刪除等工作
人在疲勞和不清醒的狀態(tài)下極易犯下錯(cuò)誤,所以應(yīng)當(dāng)盡量避免在連續(xù)工作的疲憊狀態(tài)下,或者在夢(mèng)中驚醒的凌晨迷糊狀態(tài)下進(jìn)行維護(hù)工作,比如文件刪除,在這種狀態(tài)下,極易出現(xiàn)誤判,造成誤操作.另外,在操作之前確認(rèn)你的當(dāng)前路徑,很多災(zāi)難是由于當(dāng)前路徑錯(cuò)誤導(dǎo)致的,在 Unix/Linux下,可以通過(guò)pwd命令來(lái)確認(rèn).
5. 重要的操作實(shí)現(xiàn)人員備份
前面提到過(guò)這點(diǎn)建議,再次重申,在執(zhí)行重要操作時(shí),最好有兩個(gè)人同時(shí)在場(chǎng),互相監(jiān)督審核,避免一個(gè)人草率或者考慮不周導(dǎo)致的誤操作.
以上內(nèi)容摘錄自蓋國(guó)強(qiáng)《Oracle DBA手記4 數(shù)據(jù)安全警示錄》.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/1970.html