在系统管理员执行的所有任务中,最重要的任务之一就是创建系统备份。确保不丢失系统数据的最有效方式就是,将数据从系统上复制到可以存储在系统之外的存储介质(例如,磁带或光盘)。这样,就可以在主副本出问题的时候恢复数据。也可以通过网络将数据传送到其他位置的计算机。重要的是,在系统之外的其他地点保留了所有重要文件的副本。
HP-UX 有许多用于备份和恢复的实用程序。这里的讨论集中在 fbackup/frecover 命令(由 SAM 使用)、OmniBack II、tar 和 cpio。还解释 JFS 快照文件系统的联机备份。有关其他备份和恢复实用程序的信息,请参考《HP-UX Reference》:dump、ftio、pax、restore、rrestore、vxdump 和 vxrestore。
下面是本节介绍的主题:
选择存储设备类型 |
在选择应该使用哪种介质来备份数据时,请考虑以下问题:
需要备份多少数据(粗略估计)?
需要检索数据的速度有多快?
对哪些类型的存储设备有访问权限?
希望备份进程的自动化程度有多高?(例如,希望操作员在交互模式下执行备份,还是在无人照管的情况下备份?)
需要完成备份的速度有多快?
| 注释:为防止可能破坏系统及其数据,请将备份介质与系统分开。 | |
使用表 6-11 “选择介质的标准 ”帮助确定使用哪种存储设备进行备份。此表对支持的设备类型进行相互比较,但不提供具体值。有关详细信息,请参阅随磁带或磁盘驱动器附带的文档,了解关于存储介质的容量信息。
表 6-11 选择介质的标准
存储设备类型 | 容纳数据的容量 | 恢复和备份数据的速度 | 可以作无人照管的备份 |
|---|---|---|---|
| DLT 磁带驱动器 | 极好 | 极好 | 不可以 [1] |
| DLT 磁带库 | 极好 | 极好 | 可以 |
DDS 格式 (DAT) 磁带驱动器 | 很好 | 好 | 不可以 [1] |
DDS 格式 (DAT) 磁带驱动器自动装载机 | 很好 | 好 | 可以 |
硬盘 | 好 | 极好 | 不可以 |
光盘多盘库 | 好 | 好 | 可以 [1] |
光盘单驱动器 | 好 | 好 | 不可以 [1] |
[1] 如果所有数据能放在一个磁带、光盘等介质上,可以执行无人照管的(自动)备份。 | |||
选择备份和(或)恢复实用程序 |
根据系统备份需要和工作组配置,可以从许多不同的备份方法中进行选择。以下是建议的备份方法:
HP OpenView Omniback II
SAM
HP-UX fbackup/frecover 实用程序
如果要备份大量系统,HP Omniback II 软件产品就特别有用。HP Omniback II 的备份速度比其他备份方法快,并且可进行无人照管的备份。通过该产品,可以有效地集中管理备份过程。
HP Omniback II 的使用涉及以下两方面的内容:设置数据库服务器和运行用于指导及记录客户端备份进程的 Omniback 软件。
有关详细说明,请参阅《《HP OpenView Omniback II Administrator's Guide》》。
可以使用 SAM 或 HP-UX 命令备份数据。一般说来,使用 SAM 比使用 HP-UX 命令更简单、更快。
表 6-12 “HP-UX 备份和(或)恢复实用程序的比较 ” 基于所选择的任务比较了几种 HP-UX 备份实用程序。有关具体命令的详细信息,请参阅相关的联机帮助页。
表 6-12 HP-UX 备份和(或)恢复实用程序的比较
任务 | 备份实用程序 | ||||
|---|---|---|---|---|---|
fbackup frecover | cpio | tar | dump restore [1] | vxdump vxrestore [2] | |
从磁带错误恢复 | 数据丢失 | resync 选项导致某些数据丢失。 | 不可能。 | 跳过坏磁带。 | 跳过坏磁带。 |
磁带使用效率 | 中等。 | 低。 | 高。 | 高。 | 高。 |
跨越网络备份和(或)恢复 | 可能。[3] | 可能。[4] | 可能。[5] | 可能。 [6] | 可能。 [7] |
将文件追加到同一个备份磁带 | 不可能。 | 可以使用非回卷设备文件追加多个转储。 | 使用 | 通过 dump,可以使用非回卷设备文件追加多个转储。 [8] | 通过 vxdump,可以使用非回卷设备文件追加多个转储。 [9] |
在一个磁带上进行多个独立的备份 | 不可能(fbackup 对磁带 | 对非回卷设备使用 mt 定位磁带,然后使用 cpio。 | 对非回卷设备使用 mt 定位磁带,然后使用 tar。 | 对非回卷设备使用 mt 定位磁带,然后使用 dump。 [10] | 对非回卷设备使用 mt 定位磁带,然后使用 vxdump。 [11] |
列出磁带上的文件 | 相对简单。[12] | 复杂 | 复杂(必须搜索整个备份) [14] | 相对简单。[15] | 相对简单。[16] |
验证备份(另请参阅上面的 | 使用 -xNv | 不可能。 | 不可能。 | 不可能。 | 不可能。 |
查找具体文件 | 相对简单,使用 frecover。 | 复杂 | 复杂(不允许使用通配符,搜索整个磁带) | 相对简单,可使用交互命令。 [17] | 相对简单, |
进行增量备份 | 有强大的多级备份。 | 使用 find 查找新文件或修改的文件。 | 使用 -u 选项在归档结尾添加任何新文件或修改的文件。 | 只在单文件系统上可能。 | 只在单文件系统上可能。 |
在备份或恢复文件的同时列出文件 | 可能。使用 | 可能。使用 | 可能。使用 -v | 可能(只在恢复时)。 [22] | 可能(只在恢复时)。 [23] |
基于所选的标准(例如,组)进行备份 | 不可能。 | 可能。 | 不可能。 | 不可能。 | 不可能。 |
跨越磁盘或文件系统边界 | 使用 fbackup -n 跨越 NFS | 可能。 | 可能。 | 不可能。 | 不可能。 |
将绝对路径名恢复到相对位置 | 相对于当前目录。使用-X 选项。 | 有限。可通过 cpio -ir 对每个文件指定路径名。 | 不可能。 | 相对于当前目录。使用 restore -r。 | 相对于当前目录。使用vxrestore -r。 |
以交互方式选定要恢复的文件 | 不可能。 [24] | 可通过 | 使用 | 在交互模式下,可以指定要恢复的文件。 | 在交互模式下,可以指 |
恢复时使用通配符 | 不可能。 | 可能。 | 不可能。 | 只在交互模式下。 | 只在交互模 |
从大量目录中选择要备份的文件的容易程度 | 高。 | 中等。 | 低。 | 不可能。 | 不可能。 |
备份快照文件系统 | 不可能。 | 可能。[25] | 可能。[25] | 不可能。 | 可能。 |
备份和(或)恢复盘区属性 | 可能。 | 不可能。 | 不可能。 | 不可能。 | 可能。 |
[1] 仅用于高性能文件系统 (HFS)。远程系统使用 rdump/rrestore。 [2] 用于定期文件系统(JFS 或 VxFS)。远程系统使用 rvxdump/rvxrestore。 [3] 使用 fbackup 上的“-f 远程系统: 远程设备文件”选项。 [4] 使用 find | cpio -o | remsh 主机 "dd of=/dev/tape obs=块大小"。 [5] 使用 find | tar cvf - | remsh 主机 "dd of=/dev/tape obs=块大小"。 [6] 使用 rdump -f 远程系统: 远程设备文件。 [7] 使用 rvxdump -f 远程系统: 远程设备文件。 [8] 单独的备份将放在一个磁带上。 [9] 单独的备份将放在一个磁带上。 [10] 单独的备份将放在一个磁带上。 [11] 单独的备份将放在一个磁带上。 [12] 使用 frecover -f 设备或文件 -I index or frecover -rNvf 设备或文件 2> index。 [13] 使用 cpio -it < 设备或文件 > index。 [14] 使用 tar -tvf 设备或文件 > index。 [15] 使用 restore -tf 设备或文件 > index。 [16] 使用 vxrestore -tf 设备或文件 > index。 [17] 使用 restore -i -f 设备或文件。 [18] 使用 vxrestore -i -f 设备或文件。 [19] 使用 fbackup -i 路径 -f 设备或文件 -v 2 >index。 [20] 使用 find .| cpio -ov > 设备或文件 2 > index。 [21] 使用 tar -cvf 设备或文件 * 2 > index。 [22] 使用 restore -t 或 restore -trv。 [23] 使用 vxrestore -t 或 vxrestore -trv。 [24] 但是,可以使用 frecover -x -i路径逐个指定文件。 [25] 如果快照文件系统有盘区属性,需要使用 vxdump 文件系统。 | |||||
确定要备份的数据 |
要在丢失全部数据后恢复系统,需要以下内容的副本:
所有用户文件
定制的系统文件(例如,/etc/passwd)
在最初安装后添加的系统文件
在最初安装后安装的任何附加产品
如果要使用 fbackup 命令备份,必须指定要备份的目录和文件:
| 包括的文件 | 包括的文件是备份中要包括的目录和文件。指定一个目录时,所有文件和子目录都包括在备份中。使用带有 -i 选项的 fbackup 命令或使用表文件(请参阅下面的定义)来确定包括的文件。 | ||||
| 排除的文件 | 排除的文件是要在包括的目录内从备份中排除的文件。也就是说,这些文件除外。使用带有 -e 选项的 fbackup 命令或使用表文件(请参阅下面的定义)来确定排除的文件。 | ||||
| 表文件 | 表文件是包含要备份的目录和文件的列表的文本文件。如果使用 SAM 备份系统,SAM 将使用包括的文件和排除的文件创建表文件(在 /etc/sam/br 中)。表文件每行包含一个条目。以字符 i 开头的条目表示包括的文件;以字符 e 开头的条目表示排除的文件。例如:
上面的文件将导致:备份除 /home/deptD 以外的所有 /home 目录。 可以使用带有 -g 选项的 fbackup 命令确定表文件。 |
确定多长时间备份一次数据 |
请评估系统上运行的应用程序和用户的需要,以确定系统上的数据对用户的关键程度。请考虑以下问题:
文件内容多长时间更改一次?
文件内容保持最新的重要程度。
一旦确定了要包括和排除的文件的列表,请决定希望备份列表所代表的所有文件(完全备份),还是只备份自上次备份文件后更改的或新创建的那些文件(增量备份)。
| 注释:完全备份并不意味着备份系统上的每个文件。它的意思是,备份包括列表中的每个文件,无论它上次什么时候备份过。 为确保一致性,不要在完全备份和增量备份之间修改或使用不同的表文件。 | |
如果使用 SAM 备份系统,不需要了解备份级别(因为 SAM 会处理它们)。如果直接使用命令 fbackup 和 frecover,就应该阅读本节。
备份级别是为了标识不同程度的增量备份而定义的级别。每个备份级别都有一个与其相关联的日期,它表示以该级别创建上次备份的日期。最多可以有十个备份级别(0 到 9)。例如,级别 0 是完全备份,级别 1 备份上次级别 0 备份后更改的文件,级别 2 备份上次级别 1 备份后更改的文件,依此类推。
这就提出了一个问题:“fbackup 如何知道以前的备份是何时创建的呢?”此信息包含在文件 /var/adm/fbackupfiles/dates 中,该文件只有在以下所有条件为真时才进行更新:
fbackup 使用了 -u 选项。
执行备份时,使用了表文件来确定应该包括和(或)排除哪些文件。
既未使用 -i 选项,也未使用 -e 选项(而是使用了表文件)。
备份已成功完成。
备份级别是指定各种增量备份程度的方式。例如,假设要设置以下备份时间安排:
在当月的第一天,备份全部选择的文件(每月一次完全备份)。
每个星期五,备份选择的文件中在前一个星期五之后更改的所有文件(每周一次增量备份,这样,可以相对迅速地备份和恢复在当月内一直处于活动状态的文件)。
除了星期五(或当月的第一天)以外的每一天,备份选择的文件中在前一天之后更改的所有文件(每天一次增量备份,这样,可以迅速地备份和恢复在上周内一直处于活动状态的文件)。
有三个“层次”(级别)与上面的时间安排相关联(每月一次的级别、每周一次的级别和每天一次的级别)。每月一次的级别是完全备份。另外两种级别是增量备份。现在的问题是,如何区别这两种增量备份。通过备份级别可实现这个目的。
文件 /var/adm/fbackupfiles/dates 包含有关在每个备份级别执行上次备份的时间的信息。此信息由 fbackup 使用,连同文件本身上的修改日期戳,一起确定在所指定的一组文件中哪些文件包括在当前正创建的备份中。
如前所述,最多可以有 10 个备份级别。运行 fbackup 时,可以指定使用哪个级别。fbackup 按如下所示使用指定的级别:
级别 0 始终被认为是完全备份。
通常,更高的级别用于执行增量备份。
在某个备份级别对某个表(由表文件名指定)执行增量备份时,fbackup 将搜索文件 /var/adm/fbackupfiles/dates,查找在更低级别对同一个表进行备份的最近日期。如果没有找到这样的条目,就采用最初时间。指定表中在此日期之后修改的所有文件都进行备份。
假设需要以下三个备份级别:
级别 0 - 每月一次完全备份
级别 1 - 每周星期五进行一次备份
级别 2 - 除了星期五,每天备份一次
有三种方式可实施这些备份级别:使用 SAM;输入 fbackup 命令,然后在命令行指定备份级别;或者自动执行命令(请参阅“设置自动备份时间安排”)。下图显示了进行备份的备份级别号。
Date: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 1
Day: Su M T W Th Fr Sa Su M T W Th F Sa Su ...
Backup level 0 2 2 2 2 1 2 2 2 2 2 2 1 2 2 ... 0
如果数据在 12 日星期四受到损坏,请执行以下步骤将系统恢复到 11 日星期三的状态:
恢复 1 日星期日的每月一次的完全备份磁带。
恢复 6 日星期五的每周一次的增量备份磁带。
恢复 11 日星期三的增量备份磁带。
有关恢复这些磁带的实际方法和命令的信息,请参阅“恢复数据”。
使用 fbackup 命令备份数据 |
/usr/sbin/fbackup 命令是建议使用的 HP-UX 备份实用程序。fbackup 命令可以执行以下任务:
指出备份中包括或排除的具体文件或目录
指定不同备份级别:每天备份、每周备份还是每月备份
创建联机索引文件
与 crontab 实用程序联合使用时,可以自动进行备份
| 注释:fbackup 进行备份工作时,不备份遇到的活动(打开的)文件。由于这个原因,最好在系统上登录用户很少或没有登录用户时备份系统。如果能够这样做,应该在使用 fbackup 之前将系统的运行级别更改为系统管理状态(单用户模式)。这样可以确保进行备份时备份者是唯一登录的人。因此,系统上的活动文件数最少,由此可减少本来希望包括在备份中但实际上没有包括的文件的数目。 更改到单用户状态时,将卸除所有子目录。因此,如果有必要,必须在备份之前重新挂接这些目录。有关更改为单用户状态的信息,请参阅 shutdown (1M)。如果关闭系统切换到单用户状态,请挂接要备份的文件系统(除了根 (/))。 | |
要使用 fbackup (1M) 命令,请执行下列步骤:
确保您具有超级用户身份。
确保没有人正在访问要备份的文件。fbackup 命令不备份活动(打开)文件或锁定的文件。
验证备份设备是否正确连接。
验证备份设备是否已打开。
装载带有可写介质的备份设备。如果备份需要额外的介质,fbackup 将提示什么时候装载或更换介质。
如果可能,改为单用户状态。然后挂接需要备份的任何目录。
使用 fbackup 创建备份。例如,命令
fbackup -f /dev/rmt/0m -i /home
可用于将 /home 的全部内容备份到设备文件 /dev/rmt/0m。有关 fbackup 的详细信息,请参阅 fbackup (1M)。有关 /dev 文件格式的详细信息,请参阅《《Configuring HP-UX for Peripherals》》手册和 mt (7)。
如果使用 fbackup 命令,索引将写在每个磁带的开头,列出正在备份的表文件中的所有文件。然而,由于此索引写在实际备份文件之前,如果某个文件在写完索引之后、但在备份到磁带之前被删除(或者发生了阻止备份该文件的其他事情),索引就不完全准确。
如果指定 fbackup 创建联机索引文件(使用 -I 选项),它将在备份完成之后才创建该文件。因此,唯一准确的索引是联机索引,该索引是在写完最后一卷之后才产生的(该索引是使用 fbackup -I 选项创建的)。
并且,fbackup 假定当前磁带中包含的索引对应于其余要备份的文件。因此,如果在 fbackup 命令中没有使用 -I 选项或删除了索引文件,请从当前介质组的上一个介质中抽出索引。
使用 /usr/sbin/frecover 实用程序列出在 fbackup 创建的备份卷开头的索引的内容。例如,命令
frecover -I /tmp/index2 -f /dev/rmt/0m
指定了磁带驱动器的设备文件是 /dev/rmt/0m,并且希望将列出的索引内容放在文件 /tmp/index2 中。
备份以 NFS 方式挂接到系统的文件时,除非具有超级用户权限,fbackup 只能备份那些“其他用户”具有读权限的文件(要恢复这些文件,需要“其他用户”写权限)。为确保拥有正确的权限,请作为超级用户登录到 NFS 文件服务器上,在 /usr/sbin/exportfs 命令中使用 root= 选项导出权限,然后以 root 用户进行备份。有关详细信息,请参阅 exportfs (1M) 和《《Installing and Administering NFS Services》》。
fbackup 命令的示例 |
以下是一些示例,介绍了使用 fbackup 的各种方式。
在此示例中,要进行完全备份,并且不考虑未来的增量备份。因此,不需要指定备份级别(也不需要使用 -u 选项来更新 dates 文件)。也可以指定“级别 0”,表示进行完全备份。
fbackup -i /home
(计划未来进行增量备份)
在此示例中,将备份除 invoices 目录之外的整个目录结构。此示例中的设备文件是,/dev/rmt/1h 使用 -f 选项指定。在此示例中,需要考虑增量备份(下一个示例),因此,必须做以下三件事:
使用表文件指定要包括和(或)排除哪些文件。
指定 -u 选项更新文件 /var/adm/fbackupfiles/dates。
指定备份级别。
因为此备份是完全备份,我们将使用备份级别 0。任何备份级别都可以,只要它是正在使用的最低备份级别。有关 fbackup 如何解释备份级别的详细信息,请参阅“备份级别”。
此示例的表文件是 /var/adm/fbackupfiles/graphs/g1,其内容如下
所示:
|
完成上述备份的 fbackup 命令是:
fbackup -f /dev/rmt/1h -0 -u -g /var/adm/fbackupfiles/graphs/g1此示例是前面示例的扩展。前面示例的所有特征都保持不变,除了一点:这是在前一个示例的备份之后某个时间点进行的增量备份。
我们将使用备份级别 5。确切数字并不重要,只要比前一个示例中使用的级别高就可以了。有关 fbackup 如何解释备份级别的详细信息,请参阅“备份级别”。
fbackup -f /dev/rmt/1h -5 -u -g /var/adm/fbackupfiles/graphs/g1此示例将显示如何可能指定一个以上的设备接受来自 fbackup 的输出。指定一个以上的设备时,只有第一个设备上的介质写满后才写入第二个设备。如果第一个设备上的介质写满了,第二个设备上的介质能容纳剩下的数据,就可以进行无人照管的备份。如果只有一个设备,在这种情况下就需要更换介质。
同样,在此示例中,将创建名为 /tmp/index 的索引文件。索引写在每个磁带的开头,列出正在备份的指定的表中的所有文件。然而,如果某个文件在写完索引之后、但在备份到磁带之前被删除(或者发生了阻止备份该文件的其他事情),索引就不完全准确。如果指定 fbackup 创建联机索引文件(使用 -I 选项),它将在备份完成之后才创建该文件。因此,联机索引文件在关于每个备份卷上有哪些文件方面是完全准确的。
例如,要将整个系统上的所有文件备份到两个磁带驱动器,它们的设备文件分别是 /dev/rmt/0m 和 /dev/rmt/1m,请输入:
|
通常应该对这两个磁带驱动器都使用相同的磁带密度模式。
备份远程系统上的文件 |
如果正在管理某个工作组,很有可能工作组中只有一部分系统有本地连接的存储设备(例如,磁带驱动器或光盘驱动器)。在这种情况下,需要执行远程备份。
要使用 fbackup 执行远程备份,请输入:
|
有关使用 frecover 命令远程恢复文件的信息,请参阅“恢复数据”。
|
|
如果相对路径是根 (/),将执行完全备份。/tmp/index 文件是备份的索引文件。-v 选项可将输出写到标准错误中。
注意,通过网络执行的 cpio 不支持多个磁带。
要使用 tar 执行远程备份,请输入:
|
|