天天看點

Linux伺服器資料備份恢複政策

一、Linux 備份恢複基礎

1、什麼是備份

最簡單的講,備份資料的過程就是拷貝重要的資料到其他的媒體之上(通常是可移動的),以保證在原始資料丢失的情況下可以恢複資料。一次備份可能是簡單的 cp指令,将一個檔案複制到其他目錄下,也可能是使用特定的程式将資料流寫進一個特定的裝置中的複雜過程。很多情況下是将要備份的資料寫入到錄音帶機中,但有些情況也不是這樣的。在Linux環境下,或其他Unix系統,備份可以是将檔案拷貝到已存在的檔案系統,可替換的檔案系統,錄音帶機,遠端檔案系統,甚至是遠端系統的上的錄音帶機。當然,從使用者的角度來看,并不存在錄音帶機或RAID驅動器的概念,而僅僅是檔案而已。如下的諸多因素将有可能導緻系統的崩潰或資料丢失。

2、備份的重要性

備份是保護資料的一種方法。有資料的多個備份,就不怕某個損壞(所需做的僅僅是從備份中恢複丢失的資料)。是以,正确地做好備份并確定備份有效、可用是很重要的。由于硬體的損壞、人為誤操作和災難事件等造成的資料丢失是每個企業所需要避免的,其中最常用的方法是進行資料備份。資料備份的重要性是如何強調都不過分的,如果企業認為資料的丢失是不可接受的,那麼請備份這些資料。并對備份資料和出現資料丢失後進行恢複工作需要的時間,以及花費的成本進行綜合評估。如果資料的離線備份仍然不能滿足企業運作連續性的需要,那麼企業就需要考慮線上實時備份,即本地高可用性叢集或異地災難備份方案。

二、 Linux伺服器資料備份恢複政策

1、備份前需考慮的因素

在對系統進行備份或者恢複操作之前,有幾個因素必須先考慮清楚。當然,進行備份操作的一個最佳時機就是安裝好Linux作業系統,并确信所有的裝置(如聲霸卡、顯示卡或者錄音帶機等) 都能夠正常工作的時候。必須清楚備份和檔案檔案之間是有差別的。備份是定期進行的操作,用來儲存重要的文檔、檔案或者整個系統;而對檔案歸檔則是為了長期儲存重要的文檔、檔案或者整個系統進行的操作。要進行成功的備份,就必須首先考慮到所有的因素并設計出一個進行備份操作的政策,例如:

● 是否自動備份。

● 執行備份的周期。

● 需要把歸檔的備份儲存多長時間。

● 使用者界面的友好性(決定是否需要選擇基于GUI界面的工具還是基于文本的)。

● 是否需要使用壓縮技術、直接複制或者加密技術。

● 備份媒體(需要從價格、性能、存儲能力上考慮)。

● 是否遠端備份或網絡備份。

● 是儲存一個檔案、一個子目錄還是整個系統。

2、備份媒體的選擇

有很多媒體可以用來進行備份。目前3種常用的備份媒體是CD-R(DVD-R)、錄音帶和硬碟。下面介紹一些可選擇的備份媒體:

軟碟

如果要把重要檔案快速備份,或者将其帶到家中,這時軟碟仍舊是一種可選的備份媒體(現在該媒體已經步入淘汰階段)。

CD光牒寫入器

随着CD光牒寫入器變得越來越可靠,價格也越來越低,CD光牒本身也非常便宜。選用此項的一個好處是CD光牒不容易被損壞,它備份的可靠性很高。 用CD光牒寫入器有兩點不利因素:它們速度較慢,并且隻能儲存大約650MB。

可重寫的CD光牒

可重寫CD光牒驅動器比CD光牒寫入器要貴得多,工作方式與其類似。但是,這些CD光牒是可被重寫的,并且它比隻能寫一次的CD光牒貴許多。可重寫CD光牒其它的特性都與CD光牒寫入器類似。

Jaz和Zip

Zip驅動器很流行,已經成為許多PC機的标準配置,同時它的磁盤和驅動器也都不貴。它一張磁盤可容納100MB的資料,是一種用于快速、可移動備份的很好選擇。

Jaz磁盤可以容納上G位元組的資料,并且使用更先進的技術以獲得更好的表現。Jaz驅動器和Jaz磁盤都比較貴。 Jaz和Zip的缺陷是都容易損壞,并且保持時間相對要短。

錄音帶機

錄音帶備份裝置是大多數Linux伺服器的标準配置。錄音帶是可靠的,并且很少出現錯誤,它幾乎比其它媒體存儲時間都要長。

對于點對點工作組網絡和中型網絡,Travan和高端數字音頻錄音帶(DAT)通常是最好的選擇。Travan驅動器經過壓縮可以處理8GB資料,這對于具有5-10個PC機的小型網絡來說足夠了。DAT驅動器有更好的表現,可以處理24GB的資料。DAT驅動器比Travan驅動器昂貴,但它錄音帶的價格要比Travan QIC錄音帶卷便宜。 表1中對媒體(包括一些新的媒體,如隻讀CD光牒和可讀寫CD光牒)在可靠性、速度、可用性和易用性方面進行了評價。

選擇備份媒體時,要從可靠性、速度、費用、易保管性等方面綜合考慮。

三、Linux 備份政策

選擇了存儲備份軟體、存儲備份技術(包括存儲備份硬體及存儲備份媒體)後,首先需要确定資料備份的政策。備份政策指确定需備份的内容、備份時間及備份方式。各個機關要根據自己的實際情況來制定不同的備份政策。目前被采用最多的備份政策主要有以下三種。

1、完全備份(full backup)

每隔一段時間對系統進行一次完全的備份,這樣在備份時間間隔内,一旦系統發生故障使得資料丢失時,就可以用上一次的備份資料恢複到上一次備份時的情況。例如,星期一用一盤錄音帶對整個系統進行備份,星期二再用另一盤錄音帶對整個系統進行備份,依此類推。這種備份政策的好處是:當發生資料丢失的災難時,隻要用一盤錄音帶(即災難發生前一天的備份錄音帶),就可以恢複丢失的資料。然而它亦有不足之處,首先,由于每天都對整個系統進行完全備份,造成備份的資料大量重複。這些重複的資料占用了大量的錄音帶空間,這對使用者來說就意味着增加成本。其次,由于需要備份的資料量較大,是以備份所需的時間也就較長。對于那些業務繁忙、備份時間有限的機關來說,選擇這種備份政策是不明智的。

優點:備份的資料最全面、最完整。恢複快,當發生資料丢失的災難時,隻要用一盤錄音帶就可以恢複全部的資料。

缺點:資料量非常大,占用備份的錄音帶裝置比較多,備份時間比較長。

2、增量備份(incremental backup)

首先進行一次完全備份,然後每隔一個較短時間進行一次備份,但僅備份在這個期間更改的内容。這樣一旦發生資料丢失,首先恢複到前一個完全備份,然後按日期逐個恢複每天的備份,就能恢複到前一天的情況。例如在星期天進行一次完全備份,然後在接下來的六天裡隻對當天新的或被修改過的資料進行備份。這種備份政策的優點是節省了錄音帶空間,縮短了備份時間。但它的缺點在于,當災難發生時,資料的恢複比較麻煩。例如,系統在星期三的早晨發生故障,丢失了大量的資料,那麼現在就要将系統恢複到星期二晚上時的狀态。這時系統管理者就要首先找出星期天的那盤完全備份錄音帶進行系統恢複,然後再找出星期一的錄音帶來恢複星期一的資料,然後找出星期二的錄音帶來恢複星期二的資料。很明顯,這種方式很繁瑣。另外,這種備份的可靠性也很差。在這種備份方式下,各盤錄音帶間的關系就象鍊子一樣,一環套一環,其中任何一盤錄音帶出了問題都會導緻整條鍊子脫節。比如在上例中,若星期二的錄音帶出了故障,那麼管理者最多隻能将系統恢複到星期一晚上時的狀态。

優點:備份速度快,沒有重複的備份資料,節省錄音帶空間,又縮短了備份時間。

缺點:恢複時間長。如果系統在星期四的早晨發生故障,管理者需要找出從星期一到星期三的備份錄音帶進行系統恢複。各錄音帶間的關系就像鍊子一樣,一環套一環,其中任何一盤錄音帶出了問題,都會導緻整條鍊子脫節。

3、差分備份(differential backup)

首先每月進行一次完全備份,然後備份從上次進行完全備份後更改的全部資料檔案。一旦發生資料丢失,使用一個完全備份和一個差分備份就可以恢複故障以前的狀态。管理者先在星期天進行一次系統完全備份,然後在接下來的幾天裡,管理者再将當天所有與星期天不同的資料(新的或修改過的)備份到錄音帶上。差分備份政策在避免了以上兩種政策的缺陷的同時,又具有了它們的所有優點。首先,它無需每天都對系統做完全備份,是以備份所需時間短,并節省了錄音帶空間,其次,它的災難恢複也很友善。系統管理者隻需兩盤錄音帶,即星期一錄音帶與災難發生前一天的錄音帶,就可以将系統恢複。

增量備份可以減少備份時間,有效地利用處理器資源和備份I/O帶寬,而完全備份在恢複上有很大的優勢。現在一些企業備份管理軟體提供了一個折衷的辦法:将一個基本完全備份和幾個增量備份合成為一個較新的“完全備份”。合成的完全備份是通過整合完全備份和增量備份的内容,随後寫入不同的媒體生成新備份。這個新的合成完全備份成為以後增量備份的基準。

合成完全備份從實體資源(錄音帶、錄音帶驅動器和帶寬)和時間來看消耗很大,但是簡化了恢複過程。

在實際應用中,備份政策通常是以上幾種的結合。例如每周一至周六進行一次增量備份或差分備份,每周日進行全備份,每月底進行一次全備份,每年底進行一次全備份。

4、确定要備份的内容

在備份和還原系統時,Linux 基于檔案的性質成了一個極大的優點。在 Windows 系統中,系統資料庫與系統是非常相關的。配置和軟體安裝不僅僅是将檔案放到系統上。是以,還原系統就需要有能夠處理 Windows 這種特性的軟體。在 Linux 中,情況就不一樣了。配置檔案是基于文本的,并且除了直接處理硬體時以外,它們在很大程度上是與系統無關的。硬體驅動程式的現代方法是,使它們以動态加載的子產品的形式可用,這樣核心就變得更加與系統無關。不同于讓備份必須處理作業系統如何安裝到系統和硬體上的複雜細節,Linux 備份處理的是檔案的打包和解包。

一般情況下,以下這些目錄是需要備份的:

• /etc

包含所有核心配置檔案。這其中包括網絡配置、系統名稱、防火牆規則、使用者、組,以及其他全局系統項。

• /var

包含系統守護程序(服務)所使用的資訊,包括 DNS 配置、DHCP 租期、郵件緩沖檔案、HTTP 伺服器檔案、db2 執行個體配置,等等。

• /home

包含所有使用者的預設使用者主目錄。這包括他們的個人設定、已下載下傳的檔案和使用者不希望失去的其他資訊。

• /root

是根(root)使用者的主目錄。

• /opt

是安裝許多非系統檔案的地方。IBM 軟體就安裝在這裡。OpenOffice、JDK 和其他軟體在預設情況下也安裝在這裡。

有些目錄是應該考慮不 備份的。

• /proc

應該永遠不要備份這個目錄。它不是一個真實的檔案系統,而是運作核心和環境的虛拟化視圖。它包括諸如 /proc/kcore 這樣的檔案,這個檔案是整個運作記憶體的虛拟視圖。備份這些檔案隻是在浪費資源。

• /dev

包含硬體裝置的檔案表示。如果計劃還原到一個空白的系統,那就可以備份 /dev。然而,如果計劃還原到一個已安裝的 Linux 系統,那麼備份 /dev 是沒有必要的。

其他目錄包含系統檔案和已安裝的包。在伺服器環境中,這其中的許多資訊都不是自定義的。大多數自定義都發生在 /etc 和/home 目錄中。包括:

在 UNIX 或 Linux 系統中,大部分系統配置檔案位于 /etc 目錄,但是您應該考慮對所有可能的檔案(以及可能的位置)進行備份,具體包括:

特别是,如果您使用了像 Cyrus Internet Message Access Protocol (IMAP) 這樣的解決方案,其中對使用者郵件檔案夾進行了特殊的記錄和索引。

5、 Linux 常用備份恢複指令

a)tar

tar工具是以前備份檔案的可靠方法,幾乎可以工作于任何環境中,Linux老使用者一般都信賴它。 Linux中以.tar結尾的檔案都是用tar建立的。它的使用超出了單純的備份,可用來把許多不同檔案放到一起組成一個易于分開的檔案。tar是從 Tape ARchiver備份工具起步的。 tar是一個基于檔案的指令,它本質上是連續地、首尾相連地堆放檔案。使用tar可以打包整個目錄樹,這使得它特别适合用于備份。歸檔檔案可以全部還原,或從中展開單獨的檔案和目錄。備份可以儲存到基于檔案的裝置或錄音帶裝置上。檔案可以在還原時重定向,以便将它們重新放到一個與最初儲存它們的目錄(或系統)不同的目錄(或系統)。tar是與檔案系統無關的,它可以使用在ext2、ext3、jfs、 Reiser和其他檔案系統上。

tar指令格式

常用選項:

tar 指令操作舉例

1. 跨越多張軟碟備份系統/usr/local下的所有内容,同時進行寫入校驗

# tar -cWMf /dev/fd0 /usr/local

2. 備份/目錄下自04/11/2006改過的檔案到錄音帶裝置/dev/st0中

# tar -cvf /dev/st0 -N 04/11/2006

3.保持檔案權限備份/目錄(不包括/proc)到錄音帶裝置/dev/st0中

# tar -cpf /dev/st0 / --exclude=/proc

4. 恢複恢複備份到/

# tar -xpf /dev/st0 -C /

5.從備份檔案恢複指定的檔案etc/passwd

# tar -xpf /dev/st0 etc/passwd

6.做一個完全備份

# tar -zcvf /backup/bp_full.tar.gz /

7.每隔7天做增量備份

# tar -c -T /tmp/filelist -f /backup/bp_add.tar.gz 

b)cpio指令

GNU cpio工具像tar一樣從指令提示行啟動程式。與tar相比cpio更複雜,但是也更為可靠。因為如果一個tar檔案中某處有一個壞塊,就不能對備份檔案的其它部分進行通路,而使用cpio,隻有壞塊不能被通路。 cpio建立一個稱為copy-out mode的備份,備份存檔中包含了檔案和所有者、時間及通路許可等資訊。cpio需要一個假定要備份的檔案清單。建立清單的一個最友善的方法就是使用ls 指令。

cpio 指令操作舉例

1. 拷貝目前目錄中所有檔案到錄音帶裝置 /dev/rmt0,輸入:

2. 從 cpio 歸檔中隻抽取一個正常檔案中的檔案清單,使用下列指令:

3. 把/home目錄備份到SCSI錄音帶裝置中,輸入下面的指令:

你也可以對cpio的備份進行計劃,用crontab工具設定成基于任何時間的有規律地運作。例如,要在每晚2點把/ home目錄備份到SCSI錄音帶驅動器中,把下面的語句添加到root的crontab檔案中即可:

C)dump

dump為備份工具程式,可将目錄或整個檔案系統備份至指定的裝置,或備份成一個大檔案。dump 可以執行類似 tar 的功能。然而,dump 傾向于考慮檔案系統而不是個别的檔案。下面是引自 dump 手冊檔案中的内容:“dump 檢查 ext2 檔案系統上的檔案,并确定哪些檔案需要備份。這些檔案将出于安全保護而被複制到給定的磁盤、錄音帶或其他存儲媒體上……大于輸出媒體容量的轉儲将被劃分到多個卷。在大多數媒體上,容量是通過一直寫入直至傳回一個 end-of-media 标記來确定的。”

dump指令格式:

dump [-cnu][-0123456789][-b <區塊大小>][-B <區塊數目>][-d <密度>][-f <裝置名稱>][-h <層級>][-s <錄音帶長度>][-T <日期>][目錄或檔案系統] 或 dump [-wW]

主要選項:

dump指令操作舉例:

1.執行一個完全 Linux 備份,它把所有 ext2 和 ext3 檔案系統備份到一個 SCSI 錄音帶裝置。

說明:在這個例子中,系統中有兩個檔案系統。一個用于 /boot,另一個用于 / ,這是常見的配置。它們必須在執行備份時單獨地引用。 /dev/nst0 引用第一個 SCSI 錄音帶驅動器,不過是以非重繞的模式引用。這樣確定各個卷在錄音帶上一個接一個地排列。dump 的一個有趣特性是其内置的增量備份功能。在上面的例子中,0 表示 0 級或基本級備份。這是完全系統備份,您要定期執行以儲存整個系統。對于後續的備份,您可以使用其他數字(1-9)來代替 0,以改變備份級别。1 級備份會儲存自從執行 0 級備份以來更改過的所有檔案。2 級備份會儲存自從執行 1 級備份以來更改過的所有檔案,以此類推。使用 tar 和腳本可以執行相同的功能,但要求腳本建立人員提供一種機制來确定上次備份是何時執行的。dump 具有它自己的機制,即它在執行備份時會輸出一個更新檔案(/etc/dumpupdates)。這個更新檔案将在每次執行 0 級備份時被重設。後續級别的備份會保留它們的标記,直至執行另一次 0 級備份。如果您在執行基于錄音帶的備份,dump 會自動跟蹤多個卷。

2. 配合使用 find 指令複制整個目錄

d) restore指令

配合 dump 的程式是 restore,它用于從轉儲映像還原檔案。restore 指令執行轉儲的逆向功能。可以首先還原檔案系統的完全備份,而後續的增量備份可以在已還原的完全備份之上覆寫。可以從完全或部分備份中還原單獨的檔案或者目錄樹。

Restore指令舉例

從錄音帶備份中提取 /etc 目錄,可使用以下指令:

e)dd指令

dd 是一個檔案系統複制實用工具,它産生檔案系統的二進制副本。dd 還可用于産生硬碟驅動器的映像,類似于使用諸如 Symantec 的 Ghost 這樣的産品。然而,dd 不是基于檔案的,是以您隻能使用它來将資料還原到完全相同的硬碟驅動器分區。

dd指令舉例

1.把第一個硬碟的前 512 個位元組存為一個檔案:

2為軟碟建立鏡像檔案

dd if=/dev/fd0 of=disk.img bs=1440k

有趣的是,這個鏡像檔案能被 HD-Copy ,Winimage 等工具軟體讀出。

f) cp指令

指令cp是copy的縮寫,用于複制檔案;目錄。标準的 cp 指令可用于複制整個目錄樹。該選項将對非标準的檔案執行未知的操作。有些 UNIX 變種和 GNU cp 工具支援 -R 選項,使用該選項可以正确地複制命名管道、連結和其他的檔案。

指令舉例

1 将dir1下的所有目錄包括子目錄陸續地複制到dir2中。

2.将一個目錄中的内容複制到一個已有的目錄中

總結:

Linux 是一個穩定而可靠的環境。但是任何計算系統都有無法預料的事件,比如硬體故障。擁有關鍵配置資訊的可靠備份是任何負責任的管理計劃的組成部分。在 Linux 中可以通過各種各樣的方法來執行備份。所涉及的技術從非常簡單的腳本驅動的方法,到精心設計的商業化軟體。備份可以儲存到遠端網絡裝置、錄音帶驅動器和其他可移動媒體上。備份可以是基于檔案的或基于驅動器映像的。可用的選項很多,您可以混合搭配這些技術,為您的環境設計理想的備份計劃。備份關鍵檔案涉及到确定相關檔案,并找到一種合适的方法存儲和備份這些資訊。檔案可能存儲在許多不同的位置,而您應該多加小心,以確定包含重要的、但經常被遺忘的内容,比如核心驅動程式、庫和相關配置。

本文轉自 kk5234 51CTO部落格,原文連結:http://blog.51cto.com/kk5234/405808,如需轉載請自行聯系原作者

繼續閱讀