Linux資料備份與恢復

2022-07-31 19:39:15 字數 2626 閱讀 9620

對 linux 伺服器來講,當然最理想的就是把整塊硬碟中的資料都備份,甚至連分割槽和檔案系統都備份,這樣如果硬碟損壞,那麼我們可以直接把備份硬碟中的資料匯入損壞的硬碟,甚至可以直接用備份硬碟代替損壞的硬碟。

從資料恢復角度來說,這樣的整盤備份是最方便的(dd 命令就可以實現整盤備份,類似於 windows 中的 ghost 軟體)。不過這種備份的備份時間比較長,占用的硬碟空間較大,不太適合經常進行。我們最常進行的備份還是把系統中的重要資料進行備份。

linux伺服器中常見的需要備份的資料。

/home/ 目錄:/home/ 目錄是普通使用者的家目錄。如果是生產伺服器,那麼這個目錄中也會儲存大量的重要資料,應該備份。

/var/spool/mail/ 目錄:在預設情況下,所有的使用者未讀的郵件會儲存在 /var/spool/mail/ 目錄下和使用者名稱相同的郵箱檔案中,已讀的郵件會儲存在使用者家目錄下的 mbox 檔案中(mail 命令預設如此儲存,不過如果使用了 hold 命令,那麼不管郵件是否已讀,都儲存在 /var/spool/mail/ 目錄中。可以使用 mbox 命令恢復已讀郵件儲存在「~/mbox」檔案中)。一般情況下,使用者的郵件也是需要備份的重要資料。

/etc/ 目錄:系統重要的配置檔案儲存目錄,當然需要備份。

其他目錄:根據系統的具體情況,備份你認為重要的目錄。比如,我們的系統中有重要的日誌,或者安裝了 rpm 包的 mysql 伺服器(rpm 包安裝的 mysql 服務,資料庫儲存在 /var/lib/mysql/ 目錄中),那麼 /var/ 目錄就需要備份;如果我們的伺服器中安裝了多個作業系統,或編譯過新的核心,那麼 /boot/ 目錄就需要備份。

linux 伺服器中會安裝各種各樣的應用程式,每種應用程式到底應該備份什麼資料也不盡相同,要具體情況具體對待。這裡拿最常見的 apache 服務和 mysql 服務來舉例。

apache 服務需要備份如下內容:

其實,對原始碼包安裝的 apache 來講,只要備份 /usr/local/apache2/ 目錄中所有的資料即可,因為原始碼包安裝的服務的所有資料都會儲存到指定目錄中。但如果是 rpm 包安裝的服務,就需要單獨記憶和指定了。

mysql 服務需要備份如下內容:

如果是原始碼包安裝的服務,則可以直接備份 /usr/local/ 目錄,因為一般原始碼包服務都會安裝到 /usr/local/ 目錄中。如果是 rpm 包安裝的服務,則需要具體服務具體對待,備份正確的資料。

完全備份是指把所有需要備份的資料全部備份。當然,完全備份可以備份整塊硬碟、整個分割槽或某個具體的目錄。

完全備份的好處是資料恢復方便,因為所有的資料都在同乙個備份中,所以只要恢復完全備份,所有的資料都會被恢復。如果完全備份備份的是整塊硬碟,那麼甚至不需要資料恢復,只要把備份硬碟安裝上,伺服器就會恢復正常。

但是完全備份的缺點也很明顯,那就是需要備份的資料量較大,備份時間較長,占用的空間較大,所以完全備份不可能每天執行。

一般會對關鍵伺服器進行整盤完全備份,如果出現問題,則可以很快地使用備份硬碟進行替換,從而減少損失。我們甚至會對關鍵伺服器搭設一台一模一樣的伺服器,這樣只要遠端幾個命令(或使用 shell 指令碼自動檢測,自動進行伺服器替換),備份伺服器就會接替原本的伺服器,使故障響應時間大大縮短。

完全備份隨著資料量的加大,備份耗費的時間和占用的空間會越來越多,所以完全備份不會也不能每天進行,這時增量備份的作用就體現了出來。

增量備份是指先進行一次完全備份,伺服器執行一段時間之後,比較當前系統和完全備份的備份資料之間的差異,只備份有差異的資料。伺服器繼續執行,再經過一段時間,進行第二次增量備份。在進行第二次增量備份時,當前系統和第一次增量備份的資料進行比較,也是只備份有差異的資料。第三次增量備份是和第二次增量備份的資料進行比較,以此類推。

假設我們在第一天進行一次完全備份。第二天增量備份時,只會備份第二天和第一天之間的差異資料,但是第二天的總備份資料是完全備份加第一次增量備份的資料。第三天增量備份時,只會備份第三天和第二天之間的差異資料,但是第三天的總備份資料是完全備份加第一次增量備份的資料,再加第二次增量備份的資料。當然,第四天增量備份時,只會備份第四天和第三天的差異資料,但是第四天的總備份資料是完全備份加第一次增量備份的資料,加第二次增量備份的資料,再加第三次增量備份的資料。

這種備份的好處是每次備份需要備份的資料較少,耗時較短,占用的空間較小;壞處是資料恢復比較麻煩,那麼當進行資料恢復時,就要先恢復完全備份的資料,再依次恢復第一次增量備份的資料、第二次增量備份的資料和第三次增量備份的資料,最終才能恢復所有的資料。

差異備份也要先進行一次完全備份,但是和增量備份不同的是,每次差異備份都備份和原始的完全備份不同的資料。也就是說,差異備份每次備份的參照物都是原始的完全備份,而不是上一次的差異備份。 

假設我們在第一天也進行一次完全備份。第二天差異備份時,會備份第二天和第一天之間的差異資料,而第二天的備份資料是完全備份加第一次差異備份的資料。第三天進行差異備份時,仍和第一天的原始資料進行對比,把第二天和第三天所有的資料都備份在第二次差異備份中,第三天的備份資料是完全備份加第二次差異備份的資料。第四天進行差異備份時,仍和第一天的原始資料進行對比,把第二天、第三天和第四天所有的不同資料都備份到第三次差異備份中,第四天的備份資料是完全備份加第三次差異備份的資料。

相比較而言,差異備份既不像完全備份一樣把所有資料都進行備份,也不像增量備份在進行資料恢復時那麼麻煩,只要先恢復完全備份的資料,再恢復差異備份的資料即可。不過,隨著時間的增加,和完全備份相比,變動的資料越來越多,那麼差異備份也可能會變得資料量龐大、備份速度緩慢、占用空間較大。

Linux備份與恢復

一 備份概述 1 linux系統需要備份的資料 安裝服務的資料 2 備份策略 完全備份 把所有需要備份的資料全部備份,這樣比較慢,恢復起來也比較慢 增量備份 就是每天只備份新增的部分,這樣備份最快,缺點是恢復的時候比較麻煩,需要一步一步往回恢復 差異備份 這種效率介於上面兩者之間 二 dump和re...

Linux 備份與恢復

一,概述 1,linux系統需要備份的資料 root目錄 home目錄 var spool mail 目錄 etc目錄 其他目錄 如 var log 安裝服務的資料 1,apache需要備份的資料 配置檔案,網頁主目錄,日誌檔案 2,mysql需要備份的資料 原始碼版安裝的mysql usr loc...

Linux 備份與恢復

dump命令 dump 選項 備份之後的檔名 原檔案或目錄 選項 level 其實就是0 9這十個備份級別,0表示完全備份,1 9是增量備份 f 檔名 指定備份之後的檔名 u 備份成功之後,把備份時間記錄在 etc dumpdates檔案 j 把備份檔案壓縮為.bz2格式 w 顯示允許被dump的分...