摘要:而且還要考慮恢復(fù)數(shù)據(jù)庫什么的。然而問題又來了雖然不會了,但恢復(fù)得并不完整。由于這臺服務(wù)器經(jīng)常有小白來管理,因此它裝了圖形界面,。問題找到,重裝,一切恢復(fù)正常。系統(tǒng)交給小白之前一定要對他們進(jìn)行認(rèn)真的培訓(xùn)。
起因和舞臺
學(xué)校機(jī)房采用一臺IBM小型機(jī)作為OJ服務(wù)器,現(xiàn)在浙江大學(xué)的馬宏菩學(xué)長給它裝了CentOS 6.4,做了精密的配置,目標(biāo)是它能正常工作十年以上。事實(shí)也證明他的工作何其卓越:從配置好到現(xiàn)在一年多時間從來沒有遇到過任何系統(tǒng)問題,性能一直穩(wěn)定得像放射性同位素的半衰期一樣,作為一臺OJ簡直棒極了。他畢業(yè)后由我負(fù)責(zé)維護(hù)。
而我其實(shí)也即將畢業(yè),自然需要未來的學(xué)生學(xué)習(xí)維護(hù)。然而新的信息組學(xué)生并沒有在初中用過Linux操作系統(tǒng)的,就算高中開始用,也都只是玩玩Ubuntu的圖形界面,至少沒有一個會用Vim/Emacs的,就知道水平如何了。
前幾天,他們將一組數(shù)據(jù)送上OJ,因?yàn)閏p命令參數(shù)弄反,然后sudo rm * -r,不知道怎么回事就把/lib給刪掉了……不久rm就崩潰了,停止運(yùn)行。然后系統(tǒng)就廢掉了,開機(jī)不久Kernel就因?yàn)閯討B(tài)庫調(diào)用失敗panic。
向馬宏菩學(xué)長請教后我準(zhǔn)備了兩套方案:
1.用CentOS 6.4 LiveCD進(jìn)入系統(tǒng),把LiveCD的/lib復(fù)制給系統(tǒng),先讓系統(tǒng)基本的功能能夠運(yùn)行,然后再安裝失去的功能
2.重裝
顯然我是不想重裝的,一是這臺機(jī)器數(shù)據(jù)很多,二是這樣一臺機(jī)器相當(dāng)難裝機(jī),盡管馬宏菩學(xué)長已經(jīng)做到了RAID5磁盤陣列區(qū)塊對齊(請點(diǎn)擊這里看他如何實(shí)現(xiàn)對齊的文章),解決了最難的問題,但重裝還是讓人覺得可怕的。而且還要考慮恢復(fù)MySQL數(shù)據(jù)庫什么的。所以我還是希望方案1可用。
因此我刻錄了CentOS6.4的LiveDVD和安裝DVD,然后開進(jìn)去。開進(jìn)去干的第一件事就是備份數(shù)據(jù)。最初我讓學(xué)弟們給我格式化一塊空置的原本是NTFS的1TB移動硬盤為ext4,結(jié)果他格式化成了exFAT……而我只是開啟了復(fù)制就去上晚自習(xí)了,下課回來一看才發(fā)現(xiàn)不妙,還是自己去格式化,然后扔在那里備份了一個晚上,到第二天中午下課,過去看已經(jīng)備份完了。
診斷我最擔(dān)心的是他們不僅僅刪了/lib,結(jié)果仔細(xì)一看,除了lib找不到,其他都在,還把用于存放數(shù)據(jù)的目錄移動到了根底下。進(jìn)去一看,居然有個目錄叫l(wèi)ib,大喜,趕緊將其復(fù)制出來,重啟,然后依然Kernel panic,依然是動態(tài)庫調(diào)用錯誤。
這下比較郁悶了。仔細(xì)看了看復(fù)制出來的/lib目錄,發(fā)現(xiàn)里面有一些失效的鏈接,都是庫的特定版本命名??磥硭麄兛赡艽_實(shí)刪掉了一些庫。
治療這時強(qiáng)大的Shell工具就派上用場了。先用ls生成系統(tǒng)的/lib目錄內(nèi)容以及LiveDVD的/lib目錄內(nèi)容,然后用diff比對一下,就知道/lib缺少了哪些文件了。將它們逐個復(fù)制過去,大功告成,成功開機(jī)。
然而問題又來了:雖然Kernel不會panic了,但恢復(fù)得并不完整。由于這臺服務(wù)器經(jīng)常有小白來管理,因此它裝了圖形界面,gdm+gnome2。剛開始進(jìn)入系統(tǒng)時,gdm正常,但一log out出來,gdm就無法加載用戶列表了。CentOS的診斷系統(tǒng)報告只是缺少gvfs,不太可能造成這樣的問題。
再問馬宏菩學(xué)長,他提示我考慮看看日志。翻開日志,里面全是pluseaudio的報錯……好吧你作為一臺服務(wù)器有圖形界面已經(jīng)夠bug了,居然還有pluseaudio……無視它,翻了越200行,終于看到一行特別的:dbus加載錯誤。問題找到,重裝dbus,一切恢復(fù)正常。
原本計劃這次維修用時在3天~5天,但僅僅用了一個中午就結(jié)束了。
啟示這是我第一次遇到一臺弄到無法開機(jī)的Linux,給了我許多啟示。
1.會盡可能避免重裝,是一個系統(tǒng)管理員和街邊修電腦的人遇到故障時最大的差別。重裝是以破壞用戶數(shù)據(jù)和使用習(xí)慣為代價的,能避免一定要避免。而避免的方法就是認(rèn)真分析發(fā)生的故障或問題。
2.遇到問題請看日志,日志能給你最重要的提示。
3.系統(tǒng)交給小白之前一定要對他們進(jìn)行認(rèn)真的培訓(xùn)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17338.html
摘要:轉(zhuǎn)載方法一通過恢復(fù)如果部署的是復(fù)制集,這時還有一線希望,可以通過來盡可能的恢復(fù)數(shù)據(jù)復(fù)制集的每一條修改操作都會記錄一條,所以當(dāng)數(shù)據(jù)庫被誤刪后,可以通過重放現(xiàn)有的來盡可能的恢復(fù)數(shù)據(jù)。 轉(zhuǎn)載:http://forum.foxera.com/mongo... 方法一:通過 oplog 恢復(fù)如果部署的是 MongoDB 復(fù)制集,這時還有一線希望,可以通過 oplog 來盡可能的恢復(fù)數(shù)據(jù);Mong...
閱讀 3623·2021-11-24 10:25
閱讀 2549·2021-11-24 09:38
閱讀 1238·2021-09-08 10:41
閱讀 2921·2021-09-01 10:42
閱讀 2603·2021-07-25 21:37
閱讀 1997·2019-08-30 15:56
閱讀 928·2019-08-30 15:55
閱讀 2764·2019-08-30 15:54