这篇文章来源于:http://www.ascc.sinica.edu.tw/nl/89/1606/03.txt
文章来自台湾中央研究院计算机中心,署名为刘琍绫。
转载于此,谷歌大神自动翻译简体中文,冷博客修正和重新排版。
系统管理
刘琍绫
前言
标准的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, 它不可以拷贝一群档案至储存媒体, 只可以拷贝一个档案或一部分档案或分区 或部分分区,甚至可以 在资料修改中途将资料从标准输入( 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尝试从读取错误中救回。




评论