回首頁
修改
Mail
FTP

中




2008年3月25日 星期二

[Backup]備份工具運用時機

標準的 UNIX 系統皆有提供基本的備份工具, 這些工具在某種程
度上可說是無趣的, 它們的功能並不特別花俏且有許多限制,有些
至今仍有小錯誤(如, 某些 UNIX 版本終於將 dump 中”倒帶
tape-rewinding ”的錯誤加以更正)。

然而這些基本備份工具中, 仍有些功能尚未被商業備份廠家吸收
採用,因此這些功能會長久存在且不用額外花錢購買。 它們在任何
平台環境的運作方式大致相同,如有差異也只有少許的不一樣。 無
論您是否剛接觸備份世界, 或是經驗豐富的系統管理者,都必須熟
悉這些工具。




Dump, cpio,tar與dd之運用時機

不同備份工具之間有不同的差異與優缺點。 Dump 及 restore 通
常是最好的選擇,其次是 cpio, 但它比 tar 來得不親和些; tar
則比 dump 或 cpio 更容易使用且更具攜帶性。 如果希望使用 tar
或 cpio 備份 raw devices 或執行遠端備份,那麼 dd 可以是您的
另一項選擇。

dump及restore工具

如果您正在負責備份至少一個以上的 UNIX 伺服器, 但經濟上無
法負擔商用備份產品, 也不信任免費的公共軟體來備份重要資料,
那麼最好您的 UNIX 版本有提供 dump 及 restore 指令,它們在備
份及回復整個系統上非常具有彈性與變化。 dump 及 restore 是相
當複雜的指令, 附有一簡單的介面及數個基本選項,這些選項在大
部份的 UNIX 系統是相同的。 有些 UNIX 版本改變了 dump 的名字
或部份特性,但這些改變都是非常小的。dump 也出現在仿 UNIX 系
統中,如:Linux 及 Network Appliance 系統。在未來您可能並不
打算使用 dump 來備份資料, 但是您卻會有機會從某處的 dump 資
料卷中讀取內容, 屆時,本文將帶給您相當的幫助。

cpio備份工具

如果沒有 dump 指令或者 dump 版本不符所需, 則 cpio 是您的
下一個好選擇。cpio 比其它備份工具存在的時間久,且具有一些其
它工具所缺乏的重要特性。 但首先需說明的是,有些功能 dump 有
提供而 cpio 則無者,如下:

‧無需使用touch或find檔案,即可執行變動備份(incremental backup
);

‧備份完後不改變資料的atime及ctime;

‧以互動方式執行資料回復,如restore的選項-i。

cpio 是一個非常有用的備份工具,它最大的不同處,是可以備份
從標準輸入( stdin )而來的的檔案。 目前有些新版的 tar 支援
從標準輸入來的檔案備份,但大部份尚未有此功能。

為什麼cpio較不常被使用?

如果 cpio 如此好用,為何 tar 卻比較風行?最可能的理由是同
樣的功能,tar 比 cpio 較簡單易用(也較標準)。 例如:每個版
本的 tar 都支援 tar cf device 及 tar xf device, 然而 cpio
有時支援 I 及 O;有的版本則無。如果將 cpio 每種版本的選項累
計,則有近 40 個選項, 甚至有些使用同一字母的參數,在不同版
本的 Unix 有不同的意義。 但您只要使用在大部份平台皆標準的選
項,那麼,cpio 幾乎與 tar 一般簡單好用。

tar備份工具

如果需要定期備份整個作業系統,dump 可能是最好的選擇。其次
是 cpio, 因為它可與 find 搭配執行變動備份( incremental
backup )。如果您像大部份的人一般,只為了將資料做一次完整的
備份,那麼就不需要定期或變動備份等功能。 例如,您可能希望快
速地備份使用者 /home 目錄。您可能想要刪除使用者的一大群目錄
與檔案, 但唯一可讓使用者接受的備份方式,是將其資料全部寫入
磁帶或光碟內儲存並交給他。 因此您不在乎 atime,不需定期做變
動備份, 只希望將一堆資料放到備份媒體上,而且也希望他人可以
很容易地將資料從備份中取出, 在這種情況下,tar 會是個最佳選
擇。

有一些功能是 cpio 有而大部份的 tar 則無的( GNU tar 沒有
這些限制),例如:

‧可以備份來自stdin的檔案;

‧當備份完成時重新設定檔案的atime,儘管這會改變其ctime。

雖然 tar 的歷史並不比 cpio 來得久,但它卻得到較大的接受度
,這也正是它的特點之一。幾乎每個人都知道如何讀 tar 檔,即使
不會也很容易學。 有些程式如 WinZip, 甚至可以自動地解開一個
tar 檔或壓縮過的 tar 檔以讀取其內容( WinZip 卻無法開啟
cpio 檔)。tar 也較 dump 或 cpio 在 Unix 平台間具可攜性。

dd工具

大部份的人不常使用 dd 來作備份, 它是一個相當低階的指令,
可將資訊內涵的每個位元( bit )原封不動地從一個地方搬到另一
個地方, 它不管也無需知道備份資料的結構。 因此不同於 dump,
tar, 及 cpio, 它不可以拷貝一群檔案至儲存媒體, 只可以拷貝一
個檔案或一檔案的部份或 partition 或部份 partition,甚至可以
在資料修改中途將資料從標準輸入( stdin )拷貝至標準輸出(
stdout )。即使 dd 可以拷貝單一檔案,但其對檔名或檔案內容是
一無所知的, 它純粹只是從一個地方搬運檔案的位元內容至另一個
地方而已。

這種方式看似相當簡單, 相對地它也相當有彈性,可以在不考慮
資料格式之下執行拷貝動作, 因此它可在兩個不同平台間作資料轉
換。 例如:從 EBCDIC 到 ASCII,或 Oracle 允許資料以檔案系統
下的檔案形式存在, 亦可以直接放在原始磁碟區塊上,然而備份程
式無法預測資料庫管理師會以何種方式存放資料, 故採用富彈性的
dd 作自動備份,甚至備份結果是混合此兩種資料形式也無妨,亦即
有些在檔案系統中,有些則在原始磁碟上。 如此,資料管理師可依
資料應用特性決定其存放形式,可見 dd 所提供的彈性助益甚大。

其它備份工具

尚有其它較不為人知或只出現在某些平台的備份工具, 其中較常
使用的包括:

‧pax:pax是Portable Archive eXchange的縮寫,可產生一可攜式的備
份, 此備份格式符合 IEEE Std.1003.1-1988 的
Archive/Interchange File Format。 pax 亦可讀寫一些其它的
檔案格式如 tar 或 cpio。 正如 Unix 世界的許多現象般,pax
也有一群擁護者認為它是備份工具中最好的選擇。

‧fbackup:fbackup只有HP-UX提供且屬於HP的System Administration
Menu ( SAM )的工具之一,使用 fbackup 作的備份, 只
能在另一個 HP-UX 主機上使用 frecover 讀取之。 僅管
fbackup 比傳統的 tar 及 cpio 有較多的功能, 但它缺乏
可攜性的缺點是非常使人詬病的。 即使您無法用 SAM 來操
作 dump, cpio 或 tar,但這三個指令的可攜帶特性,絕對
值得您花較多的心力去使用它們。

使用dump備份資料

對許多系統環境而言,dump 是一確保備份品質的好工具。為使用
dump 及 restore 作定期系統備份,必須先了解下面事項:

‧如何使用dump備份檔案系統;

‧如何備份至儲存媒體上;

‧如何從一dump檔讀取其內的資料目錄;

‧如何處理dump檔並從dump檔中將資料回復。

dump指令的語法

先從dump的基本指令開始:

# dump levelunbdsf blkg-factor density size device-name
file_system

下面是執行此指令的例子:

.對/home做一完整備份至本地磁帶機/dev/rmt/0cbn:

# dump 0unbdsf 126 141000 11500 /dev/rmt/0cbn /home

‧對/home做一完整備份至光碟機/backup/home.dump:

# dump 0unbdsf 126 141000 11500 /backup/home.dump /home

‧對/home做一完整備份至遠端主機hsm的磁帶機/dev/rmt/0cbn:

# (r)dump 0unbdsf 126 141000 11500 hsm:/dev/rmt/0cbn /home

上述的指令包含不需要參數的三個選項( 0,u, 及 n ),及需要
參數的四個選項( b,d,s 及 f )。

dump 指令的第一個參數是一串選項,然後每個選項對應的參數依
照選項的順序依次放置於指令行,參見圖一。

dump指令的選項

在大部分的平台上,dump有七個主要的選項:

0 -9:標示dump應執行的備份階層。

b:標示dump應使用的區塊數目因子。

u:告訴dump須更新dumpdates檔案。

n:告訴dump,當完成dump動作時通知操作者及與其同一組(group)的
人。

D 及 s:告訴dump備份的資料量多大,dump利用這些數字預估需要多少
”磁帶”。

f:告訴dump使用何種儲存設備。

W, w:此選項幾乎很少用到,它告訴dump執行假備份以判斷有那些檔案
系統必須備份。

如果欲使用 dump 定期執行系統備份,那麼, 您應會用到上述大
部份的選項。 這些選項有預設值,如無特別要求,可不用特別標明
dump 選項及其參數,例如:預設的備份階層通常是 9。預設值的問
題是它們會因不同的作業系統而不同, 甚至同一個作業系統也會因
儲存媒體的不同而有差異。 最好的方式是在所有的 dump 備份都標
明相同的選項,有助於資料回復的容易度。

使用resotore工具回復資料

您必須相當熟悉以不同的方式使用 restore 指令,從 dump 產生
的備份中取得資料。

含備份資料的儲存媒體可讀否?

為確保你知道備份磁帶的格式與區塊數目大小, 先嘗試列出它的
目錄。 下列指令可產生 dump 備份磁帶的目錄: $ restore tbfy
block_size device-name

例如,從一個在 /dev/rmt/0cbn 磁帶設備上的 dump 磁帶(使用
的區塊因子是 32 )讀取其目錄,指令如下:

$ restore tbfy 32 /dev/rmt/0cbn

restore指令的語法

一旦可以讀取 dump 磁帶, 您必須決定要讀什麼資料及如何讀它
,以下討論 restore 一般常用的參數。

基本上,有四件事情是你希望dump磁帶提供的:

‧讀取dump磁帶的目錄以確認內容是否需要;

‧回復整個檔案系統;

‧回復選定的檔案;

‧執行互動式的回復。

一般restore指令語法如下:

restore [trxi]vbsfy blocking-factor file-number device-name

restore指令的選項

restore 的行為如何,端視其後的參數型態決定回復的形式。 第
一個參數指明 restore 的型式,只可以從四種可能的參數中挑選一
種:

t:告訴restore顯示備份磁帶的目錄。

r:指明備份磁帶的整卷內容回復到目前的工作目錄之下。

x:只回復restore指令行末端所列的檔案。

i:以互動方式回復資料。

決定回復的行為

下面的參數不是必須的,但會影響回復的行為:

v:指定以明細(verbose)的方式輸出。

s:在開始讀磁帶前需跳過一些磁帶上的檔案。

b:指定正要讀取磁帶的區塊因子。

f:標明正使用的備份設備之檔名。

y:告訴restore嘗試從讀取錯誤中救回。

轉貼~

0 回應: