• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

8.2. 備份

发布: 2007-5-25 23:49 | 作者: 未知 | 来源: Blog.ChinaUnix.net | 查看: 20次 | 进入软件测试论坛讨论

领测软件测试网

8.2. 備份

備份有兩大目的:

  • 復原某個檔案

8.2. 備份

備份有兩大目的:

  • 復原某個檔案

  • 復原整個檔案系統

第一個目的是最常遇到的情形:有個使用者不小心刪掉了檔案,所以他跑來找您,希望您能從備份中找出他上次存檔的檔案。實際情形可能不盡相同,不過這是您日常最常遇到的備份功能。

第二種情形則是系統管理者最深沈的夢靨:不知道是什麼原因,您看著原本好好的硬體,現在只不過是一堆冷冰冰、由金屬與矽所組成的硬盒子。消失不見的,是您與您的使用者經年累月所加入的軟體與資料。假設什麼東西都備份了...;問題來了:真的備份了嗎?

如果真的備份了,您可以將資料復原嗎?

8.2.1. 不同的資料:不同的備份需求

看看一般電腦所處理或儲存的資料[1]類型,您會發現有些資料幾乎是恆久不變,有些資料則是不斷變動的。

對於備份程序來說,資料改變的步調非常重要。這有兩個原因:

  • 跟照相一樣,備份只不過是在備份的時候,保留一份「快照」,反映某個時間點的資料罷了。

  • 不常變動的資料就不用常常備份;常常變動的資料就要時時備份。

充分了解系統、使用者、以及應用程式的系統管理者,可以很快地把電腦上的資料分門別類。底下提供了一些範例,給您做參考:

作業系統

這類資料通常只有在升級、安裝修正程式、以及某些修改時,才會變動。

提示提示
 

到底要不要備份作業系統呢?這問題多年來一直困擾著許多系統管理員。一方面,如果安裝作業系統的程序並不麻煩,應用程式與修正程式也容易找到資料並安裝,那麼重灌作業系統可能是比較好的選擇。

反之,如果您確定重新安裝作業系統,可以直接建立原始的作業環境,那麼即使備份作業系統的頻率低於一般資料備份,備份作業系統還是最好的選擇。如果您需要回復少數幾個系統檔案(例如不小心刪除了這些系統檔),有時直接把作業系統備份檔蓋回去比較快。

應用程式軟體

當您安裝、升級、或移除應用程式時,這類資料就會變動。

應用程式資料

相關應用程式變動得有多快,這種資料就變動得多快。根據您的公司與應用程式的不同,這類資料可能每秒變動一次,也可能在每個會計年度結束時,才會變動。

使用者的資料

這種資料的變動,完全取決於使用者的使用模式。對大部分企業來說,這表示資料無時無刻不在變動。

根據這些類型(也許您的公司還有其他類型),您應該可以很容易決定該怎麼備份這些檔案,保護您的資料。

注注意
 

要記得的是,大部分備份軟體都針對目錄或檔案系統來做備份。換句話說,在備份時,您系統的檔案結構就扮演著非常重要的角色。這也是在安裝新系統時,必須依照使用狀況,審慎規劃系統檔案結構,以及使用者群組檔案與目錄結構的原因。

8.2.2. 備份軟體:買來用還是自己發展?

備份的首要條件,就是要有適當的軟體。這軟體不但要能處理基本的備份工作,把資料寫入備份裝置去,還得要有清爽靈巧的介面,符合操作人員與企業的需求。備份軟體的功能包括:

  • 在適當時間,依據排程來做備份

  • 管理備份裝置(如磁帶)的位置、替換、以及使用

  • 方便操作人員(與 / 或機械替換裝置)操作,確保能使用適當的備份媒體(如磁帶)

  • 協助操作人員從備份裝置中,找出某個備份檔

如您所見,真實世界的備份方案,遠比把一個位元一個位元的資料複製到備份裝置上,要來得複雜。

這時,大部分的系統管理者,會從底下兩種方案中擇一選用:

  • 購買商業版本的解決方案

  • 從頭開始自行發展軟體(可能會整合一或多個開放原始碼技術)

這兩種方法各有利弊。根據備份方式的複雜性,後者可能無法完成某些工作(例如磁帶管理、或完整的文件與技術支援)。然而,對某些企業來說,這反而不是壞事。

購買商業版本的解決方案通常比較實際,但有時對企業需求來說,可能太過複雜。也就是說,即使企業成長,由於備份方案不變,這複雜程度依舊存在。

如您所見,實在找不出一種萬能的解決之道。唯一可行的方法,就是用以下幾點來做決定:

  • 要換掉備份軟體不是件容易的事情;一旦安裝,您起碼會用上好一陣子。畢竟,您會有很長一段時間的備份檔,只能用目前的備份軟體讀出來。即使換了新的備份軟體,您還是得保留原有的軟體(以存取之前的備份檔);要不您就得把之前的備份檔案,全部轉換為新軟體支援的格式。

    根據備份軟體的不同,您可以用現有的轉換程式轉換備份格式,這方法很直接(但花時間);但您也可能需要研究備份格式,自己寫程式轉換也不一定。

  • 軟體必須 100% 可靠 — 它必須能備份該備份的資料。

  • 當需要復原資料時 — 不管是一個檔案或是整個檔案系統 — 備份軟體必須 100% 可靠。

8.2.3. 備份的種類

如果您問一個對電腦備份程序不熟的人,他可能會告訴您,備份不過是把電腦上的「所有」資料,拷貝一份而已。換句話說,如果您在星期二晚上做備份,星期三沒有更動電腦上的任何資料,那麼星期三晚上做的備份,跟前一天晚上做的,是完全一樣的。

這是備份的方式之一,但您實在沒有必要這樣做。要了解備份,我們得先知道備份的種類:

  • 完全備份

  • 遞增備份

  • 差異備份

8.2.3.1. 完全備份

這節剛開始時,我們討論的備份模式稱為「完全備份(full backup)」,每個檔案都會被寫進備份檔去。如上所述,如果備份之間,資料沒有任何更動,那麼所有備份資料都是一樣的。

這問題出自備份系統不會檢查自上次備份後,檔案有沒有被更動過;它只是機械性地將每個檔案讀出、寫入,不管檔案有沒有被修改過。

這是我們不會一味採取完全備份的原因 — 每個檔案都會被寫到備份裝置上。這表示即使所有檔案都沒有變動,還是會佔據許多備份空間。如果每天變動的檔案只有 10 MB,每晚卻要花費 100 GB 的空間做備份,這絕對不是個好方法;這也就是發明「遞增備份(incremental backups)」的原因。

8.2.3.2. 遞增備份

跟完全備份不同,遞增備份會先看看,檔案的最後修改時間是否比上次備份的時間來得晚。如果不是的話,那表示自上次備份後,這檔案沒有被更動過,所以這次不需要備份。換句話說,如果修改日期「的確」比上次更動的日期來得晚,那麼檔案就被更動過,需要備份。

遞增備份常常跟完全備份合用(例如每個星期做完全備份,每天做遞增備份)

使用遞增備份最大的好處在於速度:它的速度比完整備份快上許多。但壞處則是如果您要復原一個檔案,您必須把所有遞增備份的磁帶都找過一遍,直到找到為止。如果您要復原整個檔案系統,那就得先復原最近一次的完整備份,然後復原一個又一個的遞增備份。

要避免復原一個又一個的遞增資料,把作法稍微改變一下,就變成了「差異備份(differential backup)」。

8.2.3.3. 差異備份

差異備份跟遞增備份一樣,都只備份更動過的資料。但前者的備份是「累積(cumulative)」的 — 一個檔案只要自上次完整備份後,曾被更新過,那麼接下來每次做差異備份時,這檔案都會被備份(當然,直到下一次完整備份為止)。

這表示差異備份中的檔案,都是自上次完全備份之後,曾被改變的檔案。如果要復原整個系統,那麼您只要先復原完全備份,再復原最後一次的差異備份即可。

跟遞增備份所使用的策略一樣,您平時只要定期做一次完全備份,再常常做差異備份即可。

所以,差異備份的大小,會隨著時間過去而不斷增加(假設在完全備份間,每天修改的檔案都不一樣)。以備份空間與速度來說,差異備份介於遞增備份與完全備份之間;但不管是復原一個檔案或是整個系統,速度通常比較快(因為要搜尋 / 復原的磁帶數目比較少)。

基於這些特點,差異備份是值得考慮的方案。

8.2.4. 備份媒介

在上一節裡,我們一直避免使用「備份媒介(backup media,或備份媒體)」一詞。這是有原因的。對許多資深的系統管理者來說,這代表磁帶;但事實上,除了磁帶以外,還有許多選擇。

曾幾何時,磁帶機是唯一值得用來備份資料的可抽取裝置;但現在情況已經改變了。在底下的章節裡,我們將看看幾種常見的備份媒介,以及它們的優缺點。

8.2.4.1. 磁帶

磁帶是可抽換資料儲存媒介中,最先被廣為使用的產品,優點是成本低廉,儲存容量合理。但它也有若干缺點 — 容易磨損,而且只能循序存取資料。

鑑於這幾個因素,系統管理者必須時時注意磁帶是否還可以繼續使用(如果使用期限將至,就必須更新),同時要從磁帶上找個檔案,將是曠日費時的工作。

另一方面,磁帶是最便宜的儲存媒介,長久以來都以穩定著稱。所以就算您的備份磁帶一堆,那也耗不了多少錢。同時,不管是現在或未來,磁帶都是您可以仰賴的工具。

8.2.4.2. 磁碟

以前不會有人拿磁碟來備份資料;但現在硬碟的價格不斷下跌,就有些方面來說,已經低到可以拿來當備份工具了。

拿硬碟來當備份工具的首要考量,莫過於速度:目前還沒有哪種備份媒介比它還快。如果您機房能備份資料的時間不多,資料量又大,那速度就會是最大的考量。

但硬碟不是最理想的備份媒介,理由如下:

  • 通 常硬碟都不是抽取式的。一份好的備份策略,應該是備份之後,就把備份檔案帶離機房,放到另一個地方儲存。把資料庫的備份放在原始資料一公尺之外,那不叫備 份(backup),只能算拷貝(copy)。如果機房遭到環境災害,原始資料遭到損毀,那麼這份拷貝大概也難逃毒手。

  • 跟其他的儲存媒介比起來,硬碟很貴。雖然有時候錢不是問題,但在大部分情形下,用昂貴的硬碟來做備份,表示您必須降低備份的數量,以壓低整體成本。但這也表示資料重複性低,要讀取備份就不是那麼簡單了。

  • 硬碟比較脆弱。即使您花更多錢,購買可抽取式硬碟,但它們還是很脆弱,可能會造成問題。如果您把硬碟摔到地上,那資料就完了。您還得買特別的盒子,以降低(不是消除)這類傷害;但這樣又再度增加了成本。

  • 硬 碟不適合用來長期保存資料。假設您可以解決上述的所有問題,那請繼續看下去。大部分公司裡的資料,都面臨法定的保存期限。從廿年前的磁帶讀取資料,會比從 廿年前的磁碟讀取資料,成功機率大得多。舉個例子,您還找得到廿年前的硬體連上電腦嗎?另一個要考慮的,則是磁碟比磁帶複雜太多。在存放了廿年以後,要廿 年前的馬達,帶動廿年前的磁盤,再透過飛在上面、廿年前的讀寫頭,您想,能讀出資料的機率有多大?

    注注意
     

    有些資料中心會把資料先備份到硬碟上,然後等備份完成後,再轉移到磁帶上永久保存。這好處是可以降低備份影響正常工作的時間;您接下來用剩餘的上班時間,把資料從硬碟轉移到磁帶;時間不是問題,只要在下次備份開始前做完即可。

總結這些因素,在某些情形下,把資料備份到硬碟中,還是有它存在的價值。接下來我們將看看,結合網路的可行(但也許昂貴)方案。

8.2.4.3. 網路

網路沒有辦法獨立成為備份工具。不過結合了高容量儲存技術後,網路備份就能運作的很好。舉例來說,把高速網路跟擁有大量儲存空間的遠端資料中心結合起來之後,剛剛提到將資料備份到磁碟的缺點,就再也不復存在。

由於磁碟機並非連到本地機器上,因此網路備份時,就不用考慮移動脆弱硬碟的問題。只要網路頻寬夠快,硬碟速度的優勢依然存在。

不過,這方法依舊無法解決長期備份的問題(但您還是可以在網路備份後,將資料進一步備份到磁帶上)。除此之外,要讓網路備份順暢,通往資料中心的網路速度就得升級,這會讓成本增加。不過對於需要採用這方案的企業來說,他們多半樂意付這價錢。

8.2.5. 如何儲存備份

備份完成之後,接下來呢?這答案顯而易見,就是把這備份儲存起來。然而晦澀不明的,則是該儲存什麼 — 以及儲存到哪裡去。

要回答這些問題,我們該從什麼時候會用到備份檔開始考慮。底下是三種主要情形:

  1. 專為使用者復原檔案的小量需求

  2. 因為災害所引起的大量需求

  3. 不太可能會再用到的長期備份資料

很不幸的,第一點與第二點會導致互斥情形發生。當使用者不小心刪除了一個檔案,他會希望您馬上將它找回來。這表示您的備份媒介應該就放在系統的旁邊。

但如果波及機房內的一或多台電腦的災難,導致您需要復原整台電腦上的資料;那麼不管是天災與否,通常這麼大的事件,也會波及電腦邊幾步之遙的備份媒介。這恐怕是最壞的情況了。

長期備份的媒介就很少引人爭議;因為不管任何理由,需要用到的時候較少。如果把這些備份檔放在離機房很遠的地方,也沒有關係。

根據企業的需求,解決這些問題的方法也各異。其中一個方法,是把近幾天的資料備份,在手邊保留一份;超過這天數的備份檔,則送到其他地方去儲存。

另一個方法則是保留兩份備份媒介:

  • 一份特別保留在機房裡,專為復原檔案用

  • 另一份則儲存在其他地方,專為災難復原用

當然,留有兩個備份表示您必須備份兩次,或拷貝第一份備份。這方法絕對可行,但備份兩次很花時間,同時也需要更多的備份裝置(甚至要用專門的電腦來處理)。

對系統管理者的挑戰,則是要在兩者間找到平衡,一方面能達到使用者的需求,另一方面即使最壞的情形發生,也能有備份檔可以使用。

8.2.6. 復原的問題

雖然備份是每天的例行工作;但資料復原的頻率則少得多。然而,復原依舊是不可避免的事情,也因此,系統管理者最好能做好準備。

重要的是,先看看這節幾個資料復原的情形,並測試您能復原資料的能力為何。記得,最難測試的,也是最重要的。

8.2.6.1. 以空機來復原

「以空機復原」一詞,是系統管理者用一台沒有任何資料的電腦 — 沒有作業系統、沒有應用程式、什麼都沒有 — 將備份資料還原的過程。

一般來說,空機復原有兩種基本方式:

重灌,然後復原

這種方式會先安裝作業系統,就好像新電腦剛安裝設定好一樣。一旦作業系統安裝完成、設定妥當,您就可以分割其他的硬碟,並做格式化,然後將備份媒體上的資料復原回去。

系統復原開機片

系統復原開機片多半是某種可開機的媒介(通常是光碟片),包含了最簡單的系統環境,提供管理者基本的管理程式。這復原環境包括了分割與格式化硬碟的工具、啟動備份裝置的驅動程式、以及從備份檔案復原資料的軟體。

注注意
 

有些電腦能直接建立可開機的備份磁帶,開機後直接開始備份程序。但並不是所有電腦都支援這種功能。最明顯的例子,就是 PC 架構的電腦,並不具備這種能力。

8.2.6.2. 測試備份

每隔一段時間,您就該測試看看,是否能從備份檔中讀出檔案。有時候因為不明原因,備份檔中的資料就是讀不出來。而最不幸的是,這通常要等到您資料不見,需要從備份中復原時,才會發現這一點。

這些原因很多,可能是磁帶機的讀寫頭偏斜、備份軟體設定不當、或是作業人員的疏失。不管原因是什麼,只有定期測試才能確保能把資料從備份檔中讀出。

[1]

這一節中,我們用「資料」一詞,來描述所有由備份軟體所處理的東西。這包括作業系統、應用程式、以及實際的資料。但不管這些東西是什麼,對於備份軟體來說,通通都是資料。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网