我最近為了一個咨詢項目,在一個偏遠的小鄉村裡花了幾周時間。因為打電話回家十分昂貴,妻子和我便用電郵聯系。
但在離開美國幾天後的一次,電源突然中斷,雖然只一秒時間,我們的計算機卻無法訪問因特網了。最後我只能打電話到12000英裡以外請求幫助。
雖然我們所有的計算機都是以UPS連接,但其中一個UPS沒有及時工作,因而連接在那個UPS上的所有服務器都停止工作。這些服務器都配置成接通電源便會自動啟動,但由於訪問網絡出現問題,我的DNS服務器無法重啟。只有手動啟動DNS服務器,問題才會得到解決。
如果你的公司斷電會發生什麼呢?多數情況下,你也會將所有服務器連接到UPS,但你也看到了我的情況,UPS也會失靈,尤其是使用了幾年。
如果你遇到斷電,服務器掉線,那麼只需在恢復電源後啟動服務器便能解決問題。
NTFS能起到保護作用
幾年前,我是NetWare網絡的一名管理員。每當出現斷電情況,我通常得從停止工作的服務器備份中對其進行恢復。
但現在,當一個文件或打印服務器出現問題時,我們很少再使用恢復這種方法。很多人都沒有意識到,但NT文件系統(NTFS)的確包含有斷電時的防護措施。只有創建或修改一個文件,NTFS就將該操作認作處理程序。這意味著在操作寫入磁盤以前就已經寫入事務日志了。事實上,任何時候你想將文件寫入一個NTFS中,Windows就會進行以下操作:
將處理的meta-data操作記錄在RAM的日志文件中。
在RAM中記錄實際的meta-data操作。
在日志裡標記出該處理。
將日志轉儲到硬盤裡。
在硬盤裡寫入實際的meta-data操作。
(注意:第四、第五步驟並不總是立即發生。)
只要進行這些步驟,一旦出現斷電情況,Windows將自動運行CHKDSK,將其作為啟動的一部分。CHKDSK將日志文件比作硬盤。如果日志文件中有處理情況發生,而該處理不在硬盤裡或是不完整,Windows就會利用日志中有關信息重構處理,更新硬盤。唯一丟失的數據--通常都很小--是那些寫入RAM日志,卻未被轉儲到硬盤裡的日志文件的處理程序。
將文檔服務器重現連接入網相對比較簡單,但應用服務器就需要更多工作。在斷電後,我啟動了一個應用服務器,並得手動開始一些服務,但除此之外,服務器一切良好。然而,在很多情況下,如果應用程序依賴於一個數據庫,斷電便會破壞該數據庫。
Exchange Server就是依賴於數據庫的應用服務器。它以類似NT文檔系統的方式使用事務日志。盡管如此,在斷電時還是會丟失一些數據。如果發生這種情況,當重啟服務器時,數據庫便處於矛盾的狀態。那時你就得在裝配數據庫以前,使用一些內置的維護工具恢復數據庫的協調。
依賴於數據庫的應用程序有很多種。有些應用程序的數據庫會用到事務日志,有些則不會。如果你的數據庫服務程序發生斷電,而其又沒有使用事務日志進行保護,那麼你不得不從備份中進行恢復了。