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