數據是 Unix/Linux 系統中最重要的組成部分 , 但是數據的備份與同步卻是最容易被忽略的任務。通過定期的數據備份與同步,可以在磁盤出現故障時,最大程度的降低數據損失。當用戶誤操作導致數據損壞或者丟失時,可以快速恢復。
數據的備份不同於整個系統備份,將不同數據按照優先級分類,根據用戶需求,備份重要文件。
從而使數據獨立於操作系統,降低備份成本與時間。
不同的操作系統可能使用不同的數據備份方式,本文介紹了通用的 Unix/Linux 實用程序(tar 和 cpio),標准的 AIX 實用程序 (mksysb 和 backup),以及遠程備份工具 rsync。
確定備份策略
在商業環境中,必須首先確定需要備份哪些文件以及備份所消耗的時間。如果備份過多的文件,會導致備份系統的成本過於龐大,從而帶來不必要的開支。如果沒有備份足夠的數據,那麼可能導致重要數據的丟失,反而帶來更大的損失。
當然,備份整個系統是簡單易行的,但是通常這樣的備份是浪費的且缺乏意義的。從減少備份系統的成本出發,只有當某些數據足夠重要,需要共享,才具有備份的必要。
基本數據一般分為以下幾類:
•用戶數據:所有的用戶數據以及用戶目錄,及私人文件等。
•系統信息:系統用戶,組,密碼,主機列表等。
•應用程序:系統上啟動的服務,比如 web 應用程序,apache 等。
•應用程序的配置文件與數據:針對不同的應用程序,不同的配置參數和重要數據文件。
•數據庫:事實上數據庫可以單獨提供針對數據庫所有數據的備份與同步功能。
簡單的數據備份是指一次性備份所有數據,然後再備份上次備份之後所做的修改。第一次備份是指“完全備份”,後一次備份是“增量備份”。通常適用於個人或者小型網站。對於機構或者大型網站來說,需要采用“多級備份”。將完全備份設定為 0 級,增量備份的級別分別是 1,2,3 等。在每個增量備份級別上,可備份同級或上一級的上次備份以來的變動。
比如,如果我們有 1 0 盤磁帶,如果使用簡單備份進行日備份,則可恢復兩周內的數據。
如果使用多級備份,例如:
磁帶 1-2, 月備份,每月第一個星期五
磁帶 3-6, 周備份,每周星期五(排除第一周)
磁帶 7-10,日備份,每周星期一到四,則可以將備份歷史擴展到兩個月。
實用程序和命令
tar 命令
tar 命令是通用性較強的 Unix/Linux 歸檔命令。tar 將一個或多個文件和目錄打包為單個文件,並保持原始文件的大小、擁有者、權限、文件類型及其在文件系統層次結構中的位置。tar 是磁帶存檔程序 (tape archive) 的首字母縮寫,是最易用的數據備份實用程序。
表1. tar 命令的常用參數:
要創建 /CriticalData 的存檔文件,使用:
# tar -czvf backup.tar.gz /CriticalData/
要恢復該目錄,使用:
# tar -xzvf backup.tar.gz /CriticalData/
tar 在提取文件和較小的目錄方面表現不錯,如果要恢復文件系統和卷組,我們更傾向於選用 cpio, 或是使用專用性更強的 Linux/Unix 數據備份實用程序。
cpio 命令
cpio 與 tar 類似,是通用性較強的 Unix/Linux 歸檔命令。一般被用來備份和恢復文件及目錄結構。
表 2. cpio 命令的常用參數:
將 /CriticalDate 目錄和它的所有文件和子目錄建立存檔,使用:
# find /CriticalData/ -depth | cpio -ov > backup.cpio
要恢復該目錄,使用:
# cpio -ivdum
cpio 建立起來的歸檔文件包括文件頭和文件數據兩部分。文件頭包含了對應文件的信息。如文件的 UID,GID,連接數以及文件大小等。其好處是可以保留硬連接,在恢復時默認情況下保留時間戳,無文件名稱長度的限制。
mksysb 介紹
IBM AIX 與其它的 Unix 系統相比 , 有兩個重要的特性: LVM (logical volume manager) 和 ODM (object database manager)。一般而言 , 用 cpio 或 tar 的指令亦可以備份 volume groups ,
但並不能完全正確的備份完整的系統。利用 mksysb 來備份時,可制作一個可開機的磁帶 , 並且可以正常的還原系統的 LVM 和 ODM。
mksysb 備份一般用來在文件中或可啟動磁帶上創建 rootvg 的可安裝鏡像。如果需要對用戶卷組進行備份的話,可使用 savevg。
mksysb 的格式包括:
•基本操作系統啟動鏡像
•基本操作系統安裝鏡像
•虛擬目錄 (TOC)
•rootvg 上的實際數據