Oracle® Hierarchical Storage Manager and StorageTek QFS Software

文件系统恢复指南

发行版 6.1

E56781-03

2016 年 3 月

Oracle Hierarchical Storage Manager and StorageTek QFS Software 文件系统恢复指南，发行版 6.1

E56781-03

版权所有 © 2011, 2016, Oracle 和/或其附属公司。保留所有权利。

第一作者：  Robert Craig Johnson

本软件和相关文档是根据许可证协议提供的，该许可证协议中规定了关于使用和公开本软件和相关文档的各种限制，并受知识产权法的保护。除非在许可证协议中明确许可或适用法律明确授权，否则不得以任何形式、任何方式使用、拷贝、复制、翻译、广播、修改、授权、传播、分发、展示、执行、发布或显示本软件和相关文档的任何部分。除非法律要求实现互操作，否则严禁对本软件进行逆向工程设计、反汇编或反编译。

此文档所含信息可能随时被修改，恕不另行通知，我们不保证该信息没有错误。如果贵方发现任何问题，请书面通知我们。

如果将本软件或相关文档交付给美国政府，或者交付给以美国政府名义获得许可证的任何机构，则适用以下注意事项：

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

本软件或硬件是为了在各种信息管理应用领域内的一般使用而开发的。它不应被应用于任何存在危险或潜在危险的应用领域，也不是为此而开发的，其中包括可能会产生人身伤害的应用领域。如果在危险应用领域内使用本软件或硬件，贵方应负责采取所有适当的防范措施，包括备份、冗余和其它确保安全使用本软件或硬件的措施。对于因在危险应用领域内使用本软件或硬件所造成的一切损失或损害，Oracle Corporation 及其附属公司概不负责。

Oracle 和 Java 是 Oracle 和/或其附属公司的注册商标。其他名称可能是各自所有者的商标。

Intel 和 Intel Xeon 是 Intel Corporation 的商标或注册商标。所有 SPARC 商标均是 SPARC International, Inc 的商标或注册商标，并应按照许可证的规定使用。AMD、Opteron、AMD 徽标以及 AMD Opteron 徽标是 Advanced Micro Devices 的商标或注册商标。UNIX 是 The Open Group 的注册商标。

本软件或硬件以及文档可能提供了访问第三方内容、产品和服务的方式或有关这些内容、产品和服务的信息。除非您与 Oracle 签订的相应协议另行规定，否则对于第三方内容、产品和服务，Oracle Corporation 及其附属公司明确表示不承担任何种类的保证，亦不对其承担任何责任。除非您和 Oracle 签订的相应协议另行规定，否则对于因访问或使用第三方内容、产品或服务所造成的任何损失、成本或损害，Oracle Corporation 及其附属公司概不负责。

目录

标题和版权信息

前言

- 文档可访问性

- 使用本文档的先决条件

- 约定

- 可用文档

1 简介

- 故障和恢复方案

- 建议的准备工作

2 稳定状态

- 停止归档和回收过程

- 停止归档

- 停止回收

- 保留未归档数据

- 备份未归档文件

- 保留配置和状态信息

- 保存 Oracle HSM 配置

3 恢复 Oracle HSM 配置

- 从备份副本和/或 SAMreport 中恢复配置

- 从备份文件或 SAMreport 中恢复配置

- 在没有备份信息的情况下恢复配置

4 恢复文件系统

- 重新创建文件系统

- 使用备份配置文件和 sammkfs 命令重新创建文件系统

- 恢复目录和文件

- 从 samfsdump (qfsdump) 恢复点文件恢复文件和目录

- 从恢复点文件恢复丢失的文件系统

- 必要时重新回写已归档文件

- 确定已损坏文件并找到替换副本

- 查找在创建恢复点之后归档的丢失的文件

- 恢复损坏的和/或丢失的文件

- 在没有恢复点文件的情况下，从归档介质中恢复文件和目录

5 恢复丢失和已损坏的文件

- 使用恢复点文件恢复文件

- 使用日志条目恢复文件

- 恢复丢失和已损坏的常规文件

- 恢复丢失和已损坏的分段文件

- 恢复丢失和已损坏的卷溢出文件

- 恢复已损坏的归档副本

6 结束

- 将归档文件系统恢复为正常操作

- 启用归档

- 启用回收

- 保留新配置信息

- 保存新恢复的 Oracle HSM 配置

A 了解归档程序和迁移日志

B 设备类型词汇表

- 推荐的设备和介质类型

- 其他设备和介质类型

C 产品辅助功能

词汇表

前言

本文档旨在满足那些可能必须使用 Oracle Hierarchical Storage Manager（以前称为 StorageTek Storage Archive Manager）恢复已损坏或丢失的文件、文件系统和归档解决方案的系统管理员、存储和网络管理员以及服务工程师的需求。

文档可访问性

有关 Oracle 对可访问性的承诺，请访问 Oracle Accessibility Program 网站：http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc。

获得 Oracle 支持

购买了支持服务的 Oracle 客户可通过 My Oracle Support 获得电子支持。有关信息，请访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info；如果您听力受损，请访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs。

使用本文档的先决条件

本文档假定您已熟悉 Oracle Solaris 操作系统、存储和网络管理。有关相关任务、命令和过程的信息，请参阅 Solaris 文档和手册页以及存储硬件文档。

约定

本文档中使用了以下文本约定：

- 斜体类型表示书籍标题和强调。

- 等宽字体类型表示终端窗口中显示的命令和文本，以及配置文件、shell 脚本和源代码文件的内容。

- 等宽粗体类型表示用户输入和对命令行输出、终端显示或文件内容的显著更改。它还可用于强调某个文件或显示中特别重要的部分。

- 等宽粗体倾斜类型表示终端显示或文件中的变量输入和输出。

- 等宽倾斜类型表示终端显示或文件中的其他变量。

- ...（三点省略号）表示与示例无关、因而为简短或清晰起见已忽略的文件内容或命令输出。

- \（反斜杠）位于示例中某一行的末尾，用于将换行符转义，以便下一行是同一命令的一部分。

- [ - ]（方括号括住由连字符分隔的值）用于限定值的范围。

- [ ]（方括号）位于命令语法描述中，用于指示可选参数。

- root@solaris:~#  和 [hostname]:root@solaris:~#  表示 Solaris 命令 shell 提示符。

- [root@linux ~]#  表示 Linux 命令 shell 提示符。

可用文档

《Oracle Hierarchical Storage Manager and StorageTek QFS Software 文件系统恢复指南》是多卷 Oracle HSM 客户文档库的一部分，可以从 http://docs.oracle.com/en/storage/#sw 获取。

可从 http://docs.oracle.com/en/operating-systems/ 获取 Oracle Solaris 操作系统文档。

1 简介

本文档概述了您为了恢复因工具和设备的硬件故障、错误配置、人为失误或物理破坏而丢失或损坏的 Oracle Hierarchical Storage Manager and StorageTek QFS Software、文件和文件系统而应采取的步骤。正确配置的 Oracle HSM 文件系统的功能极其强大。但是在恢复期间需要采取的步骤及您的成功几率取决于您的准备程度。因此，本简介首先概述了恢复过程。然后，介绍了 Oracle 所推荐的数据和文件系统保护措施。最后，本简介概述了向您提供的恢复步骤（根据您的准备情况和您当前拥有的资源）。

故障和恢复方案

文件系统故障的范围及所需恢复操作的性质取决于底层问题的性质。例如：

- 如果服务器主机发生故障，则 Oracle HSM 软件和文件系统配置可能会丢失，而文件系统数据和元数据未受影响，但是在恢复配置信息之前无法访问。
解决底层硬件问题并恢复操作系统后，重新安装软件并从备份副本恢复配置文件。在这种情况下，请按照第 3 章 恢复 Oracle HSM 配置中概述的过程执行操作。

- 如果管理员无意中删除或损坏了一个或多个配置文件、库目录、脚本或 crontab 条目，则对一个或多个文件系统的访问权限可能会与某些或全部软件功能一起丢失。
从备份副本恢复配置文件。按第 3 章 恢复 Oracle HSM 配置中列出的过程操作。

- 如果为独立（非归档）QFS 文件系统中的数据提供磁盘高速缓存的磁盘或 RAID 组发生故障，则磁盘高速缓存中的所有文件都将丢失。
解决硬件问题后，从 QFS 备份副本恢复丢失的文件。请参见使用恢复点文件恢复文件。

- 如果为归档文件系统中的数据提供磁盘高速缓存的磁盘或 RAID 组发生故障，则磁盘高速缓存中的所有文件都将丢失。
解决硬件问题后，从归档的副本或 Oracle HSM 备份文件恢复文件。请参见使用恢复点文件恢复文件和使用日志条目恢复文件。

- 如果存储文件系统元数据的磁盘发生故障，则文件系统将丢失，并且数据不再可供访问。
解决硬件问题后，从备份文件恢复元数据。如果未备份归档文件系统的元数据，则可根据归档程序日志文件和介质迁移日志文件（如果有）的备份副本重构文件系统。请参见第 5 章 恢复丢失和已损坏的文件。

- 如果管理员无意中格式化了承载 Oracle HSM 文件系统的磁盘分区，或者对现有的 Oracle HSM 分区发出了 sammkfs 命令，则所有文件和元数据将丢失。
从备份文件恢复元数据，或者根据归档文件系统的归档程序日志和介质迁移日志文件（如果有）重构元数据。可以从归档介质或备份文件恢复数据。请参见第 5 章 恢复丢失和已损坏的文件。

建议的准备工作

在《Oracle Hierarchical Storage Manager and StorageTek QFS Software 安装和配置指南》中，Oracle 建议您在初始配置过程中采用以下配置、文件系统和数据备份步骤：

- 在 Oracle HSM 归档文件系统中存储关键数据。
至少归档文件数据的两个副本。至少在可移除介质（如磁带）上归档一个副本。

如果可能，请将磁盘归档配置在不与归档文件系统的磁盘高速缓存共享物理设备的独立文件系统中。

- 在高度冗余的镜像存储上存储文件系统元数据。

- 使用恢复点文件定期备份 Oracle HSM 文件系统。
恢复点文件存储文件系统元数据（可选择存储数据），以便恢复文件或整个文件系统。

如果安装了 Oracle Hierarchical Storage Manager 软件，则可通过运行 samfsdump 命令创建恢复点文件。如果只有 QFS 文件系统软件，则使用 qfsdump 命令。可以从命令行或 Oracle HSM Manager 图形用户界面运行转储命令。

单独使用任一命令会备份元数据。使用任一命令和 -U 选项会备份数据和元数据。-U 选项主要用于保护未归档到可移除介质的文件系统。

- 将主机配置为自动保存 Oracle HSM 元数据恢复点文件。在 Solaris crontab 文件中创建条目，或使用 Oracle HSM Manager 的调度功能。

- 配置主机来自动保存 Oracle HSM 归档程序日志文件和介质迁移日志文件（如果有）。在 Solaris crontab 文件中创建条目。
对于 Oracle Hierarchical Storage Manager 软件归档或迁移到新介质的每个文件，日志文件会记录文件在文件系统中的名称和位置（路径）、存放副本的归档 (tar) 文件的名称、存储归档文件的可移除介质卷以及归档文件在介质上的位置。

- 保存配置文件的备份副本、crontab 条目和定制文件系统管理脚本（如果有）。

- 为 Oracle HSM 恢复信息选择一个安全的存储位置。
选择可挂载在 Oracle HSM 文件系统主机上的独立文件系统。

确保所选文件系统未与归档文件系统共享任何物理设备、逻辑卷、分区或 LUN。不要将灾难恢复资源存储在用于起保护作用的文件系统中。

2 稳定状态

无论您面临的是从重大文件系统故障中进行恢复还是潜在的数据丢失，第一步均应是稳定受影响的系统、最大程度地减少进一步丢失的几率，以及尽可能保留诊断信息。本章概述您需要执行的操作：

- 停止归档和回收过程（如果有）

- 保留未归档数据

- 保留配置和状态信息。

停止归档和回收过程

当您必须恢复归档文件系统或大量丢失的文件时，应首先停止文件系统的归档和回收过程。在评估状况并将一切恢复到正常状态（在理想情况下）之前，您要稳定和隔离归档。否则，正在进行的归档和回收操作有时可能会使情况更糟糕。归档和回写过程可能会传播损坏的文件。回收过程可能会删除有效数据的仅有剩余副本。

因此，请尽可能采取下列预防措施：

- 停止归档

- 停止回收。

完成恢复操作后，您可以取消以下更改并恢复正常的文件系统行为。

停止归档

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 在文本编辑器中打开 /etc/opt/SUNWsamfs/archiver.cmd 文件，向下滚动到第一个 fs（文件系统）指令。
在示例中，我们使用 vi 编辑器：

root@solaris:~# vi /etc/opt/SUNWsamfs/archiver.cmd
# Configuration file for Oracle HSM archiving file systems
#-----------------------------------------------------------------------
# General Directives
archivemeta = off
examine = noscan
#-----------------------------------------------------------------------
# Archive Set Assignments
fs = hsmfs1
logfile = /var/adm/hsmfs1.archive.log
all .
1 -norelease 15m
2 -norelease 15m
fs = hsmfs2
logfile = /var/adm/hsmfs2.archive.log
all .
...

3. 如果需要停止所有文件系统上的归档，则在 archiver.cmd 中的第一个 fs 指令之前插入 wait 指令。保存 archiver.cmd 文件并关闭编辑器。
在本示例中，我们在 hsmfs1 文件系统指令之前插入 wait 指令，其中，该指令将适用于针对归档配置的所有文件系统：

root@solaris:~# vi /etc/opt/SUNWsamfs/archiver.cmd
...
#-----------------------------------------------------------------------
# Archive Set Assignments
wait
fs = hsmfs1
logfile = /var/adm/hsmfs1.archive.log
all .
1 -norelease 15m
2 -norelease 15m
3 -norelease 15m
fs = hsmfs2
...
:wq
root@solaris:~#

4. 如果仅需要停止一个文件系统上的归档，则在该文件系统的 fs 指令之后插入 wait 指令。保存 archiver.cmd 文件并关闭编辑器。
在本示例中，我们停止 hsmfs1 文件系统上的归档活动：

root@solaris:~# vi /etc/opt/SUNWsamfs/archiver.cmd
...
#-----------------------------------------------------------------------
# Archive Set Assignments
fs = hsmfs1
wait
logfile = /var/adm/hsmfs1.archive.log
all .
1 -norelease 15m
2 -norelease 15m
3 -norelease 15m
fs = hsmfs2
...
:wq
root@solaris:~#

5. 接下来，停止回收。

停止回收

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 请使用文本编辑器打开 /etc/opt/SUNWsamfs/recycler.cmd 文件。
在示例中，我们使用 vi 编辑器：

root@solaris:~# vi /etc/opt/SUNWsamfs/recycler.cmd
# Configuration file for Oracle HSM archiving file systems
#-----------------------------------------------------------------------
logfile = /var/adm/recycler.log
no_recycle tp VOL[0-9][2-9][0-9]
library1 -hwm 95 -mingain 60

3. 将 -ignore 参数添加到 recycler.cmd 文件中的每个回收指令中。然后保存文件并关闭编辑器。
除非已经配置了按库（而不是按归档集）回收，否则 recycler.cmd 文件不包含回收指令。但立即检查该文件。

在本示例中，我们有一个针对磁带库 library1 的回收指令：

root@solaris:~# vi /etc/opt/SUNWsamfs/recycler.cmd
# Configuration file for Oracle HSM archiving file systems
#-----------------------------------------------------------------------
logfile = /var/adm/recycler.log
no_recycle tp VOL[0-9][2-9][0-9]
library1 -hwm 95 -mingain 60 -ignore
:wq
root@solaris:~#

4. 如果要从一个或多个归档文件系统丢失或损坏中恢复，请备份未归档文件后再继续。

5. 如果要从服务器问题或者文件系统丢失或损坏中恢复，请保存 Oracle HSM 配置后再继续。

6. 如果您需要恢复目录和文件，请确定您是需要保存 Oracle HSM 配置，还是直接转至第 5 章 恢复丢失和已损坏的文件。

保留未归档数据

未归档文件可能留在损坏的归档文件系统的磁盘高速缓存中。归档中不存在这些文件的副本。因此，如果可以，请立即将其备份至恢复点文件。执行如下操作：

备份未归档文件

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 为恢复点选择安全存储位置。
在本示例中，在初始配置期间为恢复点创建的目录之下创建一个子目录 unarchived/。/zfs 文件系统与 /hsmfs1（我们要恢复的文件系统）没有共同的设备：

root@solaris:~# mkdir /zfs1/hsmfs_recovery/unarchived/
root@solaris:~#

3. 转到文件系统的根目录。
在本示例中，转到挂载点目录 /hsmfs1：

root@solaris:~# cd /hsmfs1
root@solaris:~#

4. 备份留在磁盘高速缓存中的所有未归档文件。使用命令 samfsdump -u -f recovery-point，其中 recovery-point 是输出文件的路径和文件名。
-u 选项会使 samfsdump 命令备份所有尚未归档的数据文件。在本示例中，我们将恢复点文件 20150325 保存到远程目录 /zfs1/hsmfs_recovery/unarchived/：

root@solaris:~# samfsdump -u -f /zfs1/hsmfs_recovery/unarchived/20150325
root@solaris:~#

5. 如果要从服务器问题或者文件系统丢失或损坏中恢复，请保存 Oracle HSM 配置后再继续。

6. 如果您需要恢复目录和文件，请确定您是需要保存 Oracle HSM 配置，还是直接转至第 5 章 恢复丢失和已损坏的文件。

保留配置和状态信息

即使您已安全存储用于恢复 Oracle HSM 软件和文件系统所需的全部配置文件和脚本的备份副本，保留故障系统的当前状态（如果可以）也将很有意义。留存下来的配置文件和脚本可能包含自上次完整配置备份以来所实现的更改。这可能意味着将系统恢复到接近其故障前的精确状态和仅关闭之间的差异。日志和跟踪文件包含的信息有助于恢复文件并明确故障的原因。因此，在您进行其他任何操作之前，首先应保留任何剩余内容。

保存 Oracle HSM 配置

1. 如有可能，请以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 运行 samexplorer 命令，创建 SAMreport，并将该报告保存在包含您的备份配置信息的目录中。使用命令 samexplorer path/hostname.YYYYMMDD.hhmmz.tar.gz，其中 path 是所选目录的路径，hostname 是 Oracle HSM 文件系统主机的名称，YYYYMMDD.hhmmz 是日期和时间戳。
默认文件名是 /tmp/SAMreport.hostname.YYYYMMDD.hhmmz.tar.gz。在本示例中，我们已经拥有用于保存 SAMreport 的目录，即 /zfs1/sam_config/。因此，我们在该目录中创建报告（请注意，下面的命令是作为单行输入的－使用反斜杠字符对换行符进行转义）：

root@solaris:~# samexplorer \ /zfs1/sam_config/explorer/server1.20150325.1659MST.tar.gz
Report name:     /zfs1/sam_config/explorer/samhost1.20150325.1659MST.tar.gz
Lines per file:  1000
Output format:   tar.gz (default) Use -u for unarchived/uncompressed.

Please wait.............................................
Please wait.............................................
Please wait......................................

The following files should now be ftp'ed to your support provider
as ftp type binary.

/zfs1/sam_config/explorer/samhost1.20150325.1659MST.tar.gz

3. 将尽可能多的 Oracle HSM 配置文件复制到独立文件系统中。其中包括：

/etc/opt/SUNWsamfs/
mcf
archiver.cmd
defaults.conf
diskvols.conf
hosts.family-set-name
hosts.family-set-name.local
preview.cmd
recycler.cmd
releaser.cmd
rft.cmd
samfs.cmd
stager.cmd
inquiry.conf
samremote                  # SAM-Remote server configuration file
family-set-name            # SAM-Remote client configuration file
network-attached-library   # Parameters file
scripts/*                  # Back up all locally modified files
/var/opt/SUNWsamfs/

4. 备份所有留存下来的库目录，包括历史记录目录。对于每个目录，使用命令 dump_cat -V catalog-file，其中 catalog-file 是目录文件的路径和名称。将输出重定向到新位置中的 dump-file。
我们将使用 dump_cat 文件的输出在替换系统上重建目录（使用命令 build_cat）。在本示例中，我们将 library1 的目录数据转储到已挂载 NFS 的独立文件系统 zfs1 上的目录中的文件 library1cat.dump（请注意，下面的命令是作为单行输入的－使用反斜杠字符对换行符进行转义）：

root@solaris:~# dump_cat -V /var/opt/SUNWsamfs/catalog/library1cat > \ /zfs1/sam_config/20150325/catalogs/library1cat.dump

5. 将在 Oracle HSM 安装和配置过程中修改的系统配置文件复制到独立文件系统中。其中可能包括：

/etc/
syslog.conf
system
vfstab
/kernel/drv/
sgen.conf
samst.conf
samrd.conf
sd.conf
ssd.conf
st.conf
/usr/kernel/drv/dst.conf

6. 将作为 Oracle HSM 配置的一部分而创建的任何定制 shell 脚本和 crontab 条目复制到独立文件系统中。
例如，如果创建了 crontab 条目来管理恢复点创建，现在就保存其副本。

7. 创建用于记录当前安装的软件修订版级别的 readme 文件。包含 Oracle Oracle HSM、Solaris 和 Solaris Cluster（如果适用）。将该文件与其他恢复信息一起保存在独立文件系统中。

8. 如果可能，将下载的 Oracle Oracle HSM、Solaris 和 Solaris Cluster 软件包的副本保存在独立文件系统中。
如果这些软件包已经可用，则可以在必要时快速恢复软件。

9. 如果您要从丢失的 Oracle HSM 服务器主机中恢复，请转至第 3 章 恢复 Oracle HSM 配置。

10. 如果您需要恢复一个或多个 Oracle HSM 文件系统，请转至第 4 章 恢复文件系统。

11. 如果您需要恢复目录和文件，请转至第 5 章 恢复丢失和已损坏的文件。

3 恢复 Oracle HSM 配置

本章概述了在 Oracle Hierarchical Storage Manager and StorageTek QFS Software 和文件系统配置发生部分或整体丢失或损坏的情况下，恢复该配置的过程。如果服务器主机发生故障，则 Oracle HSM 软件和文件系统配置可能会丢失，而文件系统数据和元数据未受影响，但是在恢复配置信息之前无法访问。这种情况下，成功与否取决于您是否能够从任何保留的文件和目录中挽回信息，也取决于您的灾难准备工作的全面性：

- 从备份副本和/或 SAMreport 中恢复配置

- 在没有备份信息的情况下恢复配置。

从备份副本和/或 SAMreport 中恢复配置

如果您按照《Oracle Hierarchical Storage Manager and StorageTek QFS Software 安装和配置指南》中建议的过程执行操作，则可以采用以下步骤恢复 Oracle HSM 软件和文件系统配置。

从备份文件或 SAMreport 中恢复配置

1. 如果要在服务器主机故障后恢复配置，请解决硬件问题，根据需要重新安装操作系统和软件。

2. 如果根文件系统存在最新的备份副本，请恢复根文件系统并在此处停止。

3. 否则，请以 root 用户身份登录文件系统服务器主机。

root@solaris:~#

4. 挂载所有必需的文件系统。挂载存储备份 Oracle HSM 配置文件的文件系统以及存储数据文件的磁盘归档副本的所有文件系统。
在示例中，已在独立文件系统 zfs1 上的子目录 sam_config 中维护了 Oracle HSM 服务器的 Solaris 配置文件的副本。因此我们创建一个挂载点。我们挂载 zfs1。我们从 zfs1 文件系统中的最近副本恢复 vfstab 文件。创建所需的挂载点。然后我们挂载文件系统：

root@solaris:~# cp /etc/vfstab /etc/vfstab.back
root@solaris:~# mkdir /zfs1
root@solaris:~# mount -F zfs /net/remote.example.com/zfs1/ /zfs1
root@solaris:~# cp /zfs1/sam_config/20140127/etc/vfstab /etc/vfstab
root@solaris:~# mkdir /diskvols
root@solaris:~# mkdir /diskvols/DISKVOL1
root@solaris:~# mkdir /diskvols/DISKVOL2
...
root@solaris:~# mount /diskvols/DISKVOL1
root@solaris:~# mount /diskvols/DISKVOL2
...
root@solaris:~#

5. 如果 Oracle HSM 配置文件的备份副本可用，请找到早于配置丢失日期的最新副本。
在示例中，已在独立文件系统 /zfs1 上的子目录 sam_config 中维护了 Oracle HSM 配置文件的副本。因此可轻松找到最新文件：

root@solaris:~# ls /zfs1/sam_config/20140127/etc/opt/SUNWsamfs/
archiver.cmd     defaults.conf    mcf              recycler.cmd     stager.cmd
cfg_backups      diskvols.conf    mgmt_sched.conf  releaser.cmd     startup
csn              inquiry.conf     notify.cmd       scripts          verifyd.cmd
root@solaris:~# ls /zfs1/sam_config/20140127/etc/opt/SUNWsamfs/scripts
archiver.sh    log_rotate.sh  nrecycler.sh   recycler.sh    save_core.sh   sendtrap       ssi.sh
root@solaris:~# ls /zfs1/sam_config/explorer/
server1.20140430.1659MST.tar.gz   server1.20140114.0905MST.tar.gz
server1.20110714.1000MST.tar.gz

6. 如果 SAMreport 的生成时间在 Oracle HSM 配置丢失之前，请找到最新的文件。

7. 如果当前已挂载任何 QFS 文件系统，请将其卸载。

8. 对于每个丢失的配置文件，请将可用备份文件复制到您要恢复的服务器上的所需位置。
在本示例中，我们从备份副本恢复所有 Oracle HSM 配置文件和脚本（请注意，下面的命令是作为单行输入的－使用反斜杠字符对换行符进行转义）：

root@solaris:~# cp /zfs1/sam_config/20140127/etc/opt/SUNWsamfs/* \
/etc/opt/SUNWsamfs/
root@solaris:~# cp /zfs1/sam_config/20140127/etc/opt/SUNWsamfs/scripts/* \
/etc/opt/SUNWsamfs/scripts/
root@solaris:~# cp /zfs1/sam_config/20140127/etc/opt/SUNWsamfs/startup/* \
/etc/opt/SUNWsamfs/startup/
root@solaris:~# cp /zfs1/sam_config/20140127/etc/opt/SUNWsamfs/cfg_backups/* \
/etc/opt/SUNWsamfs/cfg_backups/
root@solaris:~# cp /zfs1/sam_config/20140127/etc/opt/SUNWsamfs/csn/* \
/etc/opt/SUNWsamfs/csn/

9. 如果配置文件的备份副本不可用，请使用最新可用 SAMreport 中包含的信息重新创建备份副本。复制该报告中的内容，将其粘贴到文本编辑器，然后将其保存到报告中指明的文件和路径中。
SAMreport 文件包含在创建报告时 Oracle HSM 配置文件的全部文本。它们还列出了文件所处的目录。

在本示例中，我们在文件 server1.20140127.SAMreport 中搜索 Oracle HSM 主配置文件 (mcf) 信息。我们将 cat 命令的输出通过管道传输至 grep 命令和正则表达式模式 \/etc\/opt\/SUNWsamfs\/mcf（请注意，下面的命令是作为单行输入的－使用反斜杠字符对换行符进行转义）：

root@solaris:~# cat /zfs1/sam_config/explorer/server1.20140127.SAMreport | \ grep \/etc\/opt\/SUNWsamfs\/mcf
...
------------------ /etc/opt/SUNWsamfs/mcf -------------------
server1# /bin/ls -l /etc/opt/SUNWsamfs/mcf
-rw-r--r--   1 root     root        1789 Feb  4 09:22 /etc/opt/SUNWsamfs/mcf

# Equipment           Equipment  Equipment  Family     Device   Additional
# Identifier          Ordinal    Type       Set        State    Parameters
#-------------------  ---------  ---------  ---------  ------   -----------
hsmfs1               100        ms         hsmfs1    on
/dev/dsk/c1t3d0s3    101        md         hsmfs1    on
/dev/dsk/c1t4d0s5    102        md         hsmfs1    on
root@solaris:~#

我们复制 grep 命令的输出，将输出粘贴到 vi 编辑器中，并将文件保存到正确的名称和位置：

root@solaris:~# vi /etc/opt/SUNWsamfs/mcf
# Equipment           Equipment  Equipment  Family     Device   Additional
# Identifier          Ordinal    Type       Set        State    Parameters
#-------------------  ---------  ---------  ---------  ------   -----------
hsmfs1               100        ms         hsmfs1    on
/dev/dsk/c1t3d0s3     101        md         hsmfs1    on
/dev/dsk/c1t4d0s5     102        md         hsmfs1    on
:wq
root@solaris:~#

10. 基于在执行保存 Oracle HSM 配置过程期间保存的转储文件数据恢复磁带库目录。对于每个目录，使用命令 build_cat catalog-dump-file catalog-file，其中：

- catalog-dump-file 是您使用 dump_cat 命令创建的文件的路径和名称。

- catalog-file 是恢复的目录文件的路径和名称。

在示例中，我们使用文件 /zfs1/sam_config/20140513/catalogs/library1cat.dump 中的数据重建了 library1 的目录：

root@solaris:~# build_cat /zfs1/sam_config/20140513/catalogs/library1cat.dump \ /var/opt/SUNWsamfs/catalog/library1cat

11. 如果您要在硬件故障之后恢复系统，请转至第 4 章 恢复文件系统。

12. 如果您要更换无意中删除或错误编辑的一个或多个配置文件，且未发生任何硬件或文件系统更改，请通过运行 sam-fsd 命令来检查配置文件中是否存在错误。
sam-fsd 是一个读取 Oracle HSM 配置文件的初始化命令。该命令会在遇到以下错误时停止：

root@solaris:~# sam-fsd

13. 如果 sam-fsd 命令在 mcf 文件中找到错误，请编辑该文件以更正错误，并按照前一步骤中的描述重新检查。
在下面的示例中，sam-fsd 报告设备中出现的未指定问题：

root@solaris:~# sam-fsd
Problem in mcf file /etc/opt/SUNWsamfs/mcf for filesystem hsmfs1
sam-fsd: Problem with file system devices.
root@solaris:~#

14. 如果 sam-fsd 命令运行无误，则配置文件是正确的。继续执行下一步。
以下示例是无误输出的部分列表：

root@solaris:~# sam-fsd
Trace file controls:
sam-amld      /var/opt/SUNWsamfs/trace/sam-amld
cust err fatal ipc misc proc date
size    10M  age 0
sam-archiverd /var/opt/SUNWsamfs/trace/sam-archiverd
cust err fatal ipc misc proc date module
size    10M  age 0
sam-catserverd /var/opt/SUNWsamfs/trace/sam-catserverd
cust err fatal ipc misc proc date module
size    10M  age 0
...
Would start sam-archiverd()
Would start sam-stagealld()
Would start sam-stagerd()
Would start sam-amld()
root@solaris:~#

15. 告知 Oracle HSM 软件读取 mcf 文件，并相应重新配置自身。使用命令 samd config。

root@solaris:~# samd config
Configuring SAM-FS
root@solaris:~#

16. 如果 samd config 命令报告 mcf 文件中有错误，请更正错误。然后重复上述步骤。

17. 重新挂载受影响的文件系统。

18. 监视文件系统操作。

在没有备份信息的情况下恢复配置

如果您缺乏备份文件或 SAMreport，请使用任何可用信息来重构配置。然后继续进行新的配置。有关说明，请参见《Oracle Hierarchical Storage Manager and StorageTek QFS Software 安装和配置指南》。

4 恢复文件系统

本部分概述了当整个 Oracle HSM 文件系统损坏或丢失时您将使用的恢复过程。此类过程会有所不同，具体取决于所涉及的文件系统类型以及您所做的备份和恢复准备工作的类型。但是您必须执行两项基本任务：

- 重新创建文件系统

- 恢复目录和文件。

在开始前，请注意：如果您从丢失的 Oracle HSM 元数据服务器中进行恢复，在继续之前请确保您已完成恢复 Oracle HSM 配置（如第 3 章中所述）。本章中的过程假定已安装 Oracle HSM 软件，并已将该软件配置为文件系统丢失之前的状态。

重新创建文件系统

在恢复文件和目录之前，您必须具有用于放置文件和目录的位置。因此，恢复过程的第一步是创建空的替换文件系统。执行如下操作：

使用备份配置文件和 sammkfs 命令重新创建文件系统

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 如果当前已挂载文件系统，请将其卸载。使用命令 umount mount-point，其中 mount-point 为挂载了文件系统的目录。
在本示例中，我们卸载文件系统 /hsmfs1：

root@solaris:~# umount /hsmfs1
root@solaris:~#

3. 在文本编辑器中打开 /etc/opt/SUNWsamfs/mcf 文件。检查硬件配置。如果您必须更改硬件，请相应地编辑该文件，然后保存更改。
在本示例中，我们将两个故障磁盘设备的设备标识符替换为其替换磁盘设备的设备标识符。请注意，设备序号保持不变：

root@solaris:~# vi /etc/opt/SUNWsamfs/mcf
# Equipment              Equipment  Equipment  Family     Device  Additional
# Identifier             Ordinal    Type       Set        State   Parameters
#----------------------- ---------  ---------  ---------  ------  -------------
hsmfs1                  100        ms         hsmfs1    on
/dev/dsk/c1t3d0s3        101        md         hsmfs1    on
/dev/dsk/c1t4d0s5        102        md         hsmfs1    on
# Tape library
/dev/scsi/changer/c1t2d0 800        rb         lib800     on     .../lib800_cat
/dev/rmt/0cbn            801        li         lib800     on
/dev/rmt/1cbn            802        li         lib800     on
:wq
root@solaris:~#

4. 检查 mcf 文件中是否存在错误。使用命令 sam-fsd。
sam-fsd 命令读取 Oracle HSM 配置文件，并初始化相应软件。该命令会在遇到以下错误时停止：

root@solaris:~# sam-fsd

5. 如果 sam-fsd 命令在 mcf 文件中找到错误，请编辑该文件以更正错误，并按照前一步骤中的描述重新检查。
在下面的示例中，sam-fsd 报告设备中出现的未指定问题。在 "Equipment Identifier"（设备标识符）字段中，这可能是一个键入错误：

root@solaris:~# sam-fsd
Problem in mcf file /etc/opt/SUNWsamfs/mcf for filesystem qfsms
sam-fsd: Problem with file system devices.

通常，这样的错误是不经意的键入错误导致的。此处，在编辑器中打开 mcf 文件后，发现在设备 102（第二个 md 设备）设备名称的分片编号中键入了一个字符 o 而非 0：

root@solaris:~# vi /etc/opt/SUNWsamfs/mcf
...
qfsms                100        ms         qfsms      on
/dev/dsk/c0t0d0s0   101        md         qfsms      on
/dev/dsk/c0t3d0so   102        md         qfsms      on

因此我们更正错误，保存文件，并重新检查：

root@solaris:~# vi /etc/opt/SUNWsamfs/mcf
...
qfsms                100        ms         qfsms      on
/dev/dsk/c0t0d0s0   101        md         qfsms      on
/dev/dsk/c0t3d0s0   102        md         qfsms      on
:wq
root@solaris:~# sam-fsd

6. 如果 sam-fsd 命令运行无误，则 mcf 文件是正确的。继续执行下一步。
在本示例中，sam-fsd 运行无误：

root@solaris:~# sam-fsd
Trace file controls:
sam-amld      /var/opt/SUNWsamfs/trace/sam-amld
...
Would start sam-archiverd()
Would start sam-stagealld()
Would start sam-stagerd()
Would start sam-amld()
root@solaris:~#

7. 告知 Oracle HSM 软件读取 mcf 文件，并相应重新配置自身：

root@solaris:~# samd config
Configuring SAM-FS
root@solaris:~#

8. 创建替换文件系统。使用命令 sammkfs family-set-name，其中的 family-set-name 为文件系统的名称。
在本示例中，我们重新创建文件系统 hsmfs1：

root@solaris:~# sammkfs hsmfs1
Building 'hsmfs1' will destroy the contents of devices:
/dev/dsk/c0t0d0s0
/dev/dsk/c0t3d0s0
Do you wish to continue? [y/N]yes
total data kilobytes       = ...
root@solaris:~#

9. 如果需要，请重新创建该文件系统的挂载点目录。
在本示例中，我们重新创建目录 /hsmfs1：

root@solaris:~# mkdir /hsmfs1
root@solaris:~#

10. 备份操作系统的 /etc/vfstab 文件。

root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
root@solaris:~#

11. 在文本编辑器中打开 /etc/vfstab 文件。如果 /etc/vfstab 文件不包含您要恢复的文件系统的挂载参数，您将必须恢复该挂载参数。
在本示例中，Oracle HSM 服务器安装在替换主机中。因此，该文件不包含我们要恢复的文件系统 hsmfs1 的挂载参数：

root@solaris:~# vi /etc/vfstab
#File
#Device    Device   Mount     System  fsck  Mount    Mount
#to Mount  to fsck  Point     Type    Pass  at Boot  Options
#--------  -------  --------  ------  ----  -------  ---------------------
/devices   -        /devices  devfs   -     no       -
/proc      -        /proc     proc    -     no       -
...

12. 如果可能，当您必须恢复挂载参数时，请打开原始 /etc/vfstab 文件的备份副本，然后将所需的行复制到当前的 /etc/vfstab 文件中。完成更改后，请保存相应文件，然后关闭编辑器。
在本示例中，我们拥有备份副本 /zfs1/sam_config/20140127/etc/vfstab。因此，我们从该备份副本中复制 hsmfs1 文件系统的相应行，然后将其粘贴到当前的 /etc/vfstab 文件中：

root@solaris:~# vi /zfs1/sam_config/20140127/etc/vfstab.20140127
#File
#Device    Device   Mount     System  fsck  Mount    Mount
#to Mount  to fsck  Point     Type    Pass  at Boot  Options
#--------  -------  --------  ------  ----  -------  ---------------------
/devices   -        /devices  devfs   -     no       -
/proc      -        /proc     proc    -     no       -
...
hsmfs1    -        /hsmfs1  samfs   -     yes      stripe=1,bg
:q

root@solaris:~# vi /etc/vfstab
#File
#Device    Device   Mount     System  fsck  Mount    Mount
#to Mount  to fsck  Point     Type    Pass  at Boot  Options
#--------  -------  --------  ------  ----  -------  ---------------------
/devices   -        /devices  devfs   -     no       -
/proc      -        /proc     proc    -     no       -
...
hsmfs1    -        /hsmfs1  samfs   -     yes      stripe=1,bg
:wq
root@solaris:~#

13. 挂载文件系统。
在本示例中，我们挂载文件系统 hsmfs1：

root@solaris:~# mount /hsmfs1
root@solaris:~#

14. 现在，开始恢复目录和文件。

恢复目录和文件

重新创建基本文件系统后，您可以开始恢复目录和文件。有两个可能的方法：

- 如果您定期创建且安全存储了恢复点，则从 samfsdump (qfsdump) 恢复点文件恢复文件和目录是目前为止的最佳选项。
该方法可立即将文件系统返回至完整功能，因为它可恢复文件系统元数据。归档文件系统可立即访问归档介质上的数据，然后在用户访问文件时立即或根据需要将文件回写到磁盘高速缓存。文件随其原始属性一起恢复。

如果恢复点包含数据及元数据，则此方法也是用于恢复未被第三方应用程序备份的独立（非归档）文件系统的唯一方法。

- 使用恢复脚本和 Oracle HSM star 实用程序在没有恢复点文件的情况下，从归档介质中恢复文件和目录。

从 samfsdump (qfsdump) 恢复点文件恢复文件和目录

您的文件系统恢复工作应尽可能以最新可用的恢复点文件为基础。到目前为止，这是从 Oracle HSM 文件系统故障中进行恢复的最快、最可靠、最节省人力的方法。因此，如果存在恢复点文件，请继续如下操作：

从恢复点文件恢复丢失的文件系统

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 如果您尚未停止归档和回收，请使用停止归档和回收过程中介绍的过程停止归档和回收。

3. 标识最新的可用恢复点文件。
在本示例中，我们在已知位置（即独立文件系统 /zfs1 中的子目录 hsmfs1_recovery）为文件系统 hsmfs1 创建了标注日期的恢复点文件。因此可轻松找到最新文件 20140324：

root@solaris:~# ls /zfs1/hsmfs1_recovery/
20140321    20140322    20140323    20140324
root@solaris:~#

4. 更改为重新创建的文件系统的挂载点目录。
在本示例中，重新创建的文件系统挂载于 /hsmfs1：

root@solaris:~# cd /hsmfs1
root@solaris:~#

5. 恢复相对于当前目录的整个文件系统。使用命令 samfsrestore -T -f recovery-point-file -g logfile 或仅 QFS 命令 qfsrestore -T -f recovery-point-file -g logfile，其中：

- 当命令终止时，-T 会显示恢复统计信息，包括所处理的文件和目录数目及错误和警告数目。

- -f recovery-point-file 会指定选定恢复点文件的路径和文件名称。

- -g logfile 会创建在创建恢复点时处于联机状态的目录和文件列表，并将该列表保存至由 logfile 指定的文件。
如果您要恢复归档文件系统，则该文件可用于从归档介质中自动回写文件，以便磁盘高速缓存所处的状态与其在创建恢复点时的状态相同。

在本示例中，我们从恢复点文件 /zfs1/hsmfs1_recovery/20140324 恢复文件系统 hsmfs1。我们将联机文件记录在文件 /root/20140324.log 中（请注意，下面的命令是作为单行输入的－使用反斜杠字符对换行符进行转义）：

root@solaris:~# samfsrestore -T -f /zfs1/hsmfs1_recovery/20140324 \
-g /root/20140324.log
samfsdump statistics:
Files:              52020
Directories:        36031
Symbolic links:     0
Resource files:     8
File segments:      0
File archives:      0
Damaged files:      0
Files with data:    24102
File warnings:      0
Errors:             0
Unprocessed dirs:   0
File data bytes:    0
root@solaris:~#

6. 如果您已恢复独立（非归档）文件系统，则已恢复保存在恢复点文件中的文件系统元数据和文件数据。在此处停止。

7. 否则，必要时重新回写已归档文件。

必要时重新回写已归档文件

1. 多数情况下，请勿在文件系统恢复后将文件从归档介质中重新回写到磁盘中。让用户根据需要，通过访问文件来回写文件。
该方法会根据用户需要自动对回写按优先级排序。该方法会在文件系统可能已脱机一段时间时最大程度地提高其可用性。仅回写立即需要的文件。因此总回写工作会分布在一段时间中。这样有助于确保文件系统资源（如驱动器）始终可用于高优先级任务（如归档新文件和回写迫切需要的用户数据）。

该方法还可减少与恢复相关的管理工作。

2. 如果必须重新回写故障前磁盘高速缓存中的文件，请使用命令 /opt/SUNWsamfs/examples/restore.sh logfile，其中 logfile 是使用 samfsrestore (qfsrestore) 命令和 -g 选项创建的日志文件的路径和文件名。
restore.sh 脚本会回写日志文件中列出的文件。这些是在创建 samfsrestore (qfsrestore) 恢复点文件时联机的文件。

如果需要回写几千个文件，则考虑将日志文件拆分为一些较小的文件。然后依次对每个文件运行 restore.sh 脚本。这样可在一段时间内传播回写工作，并减少对归档和用户启动的回写的干扰。

3. 现在，确定已损坏文件并找到替换副本。

确定已损坏文件并找到替换副本

samfsrestore 过程从恢复点文件恢复文件系统元数据的副本，因此您可以在磁带上找到相应的文件系统数据并将其恢复至其在文件系统中的适当位置。不过，会在文件系统丢失之前创建恢复点文件。因此，某些元数据通常会指向自恢复点创建以来已更改的数据位置，这是不可避免的。文件系统具有这些文件的记录，但无法定位其内容。因此，文件系统会在每个此类文件上设置 damaged 标志。

在某些情况下，损坏的文件的数据确实可能已丢失。但在其他情况下，恢复的元数据仅是过期而已。仅由于恢复的元数据不记录当前位置，因此恢复的文件系统可能无法找到在创建恢复点之后归档或迁移的文件的数据。在这些情况下，您可能能够通过自己找到相应的数据并更新恢复的元数据将文件恢复至未损坏的状态。

要找到丢失的数据，请更新元数据，然后将文件恢复至未损坏的状态（使用归档程序日志和介质迁移日志文件（如果有））。执行如下操作：

1. 如果您尚未执行该操作，以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 标识最新的可用归档程序日志文件。
如果服务器上的归档程序日志仍然可用，则它有可能包含最新的信息。否则，您需要使用备份副本。

在本示例中，归档程序日志文件 hsmfs1.archiver.log 位于服务器上的 /var/adm/ 子目录中。我们还为已知位置（独立文件系统 /zfs1 上的子目录 hsmfs1_recovery/archlogs）中的归档程序日志文件标注了日期。因此，我们同时拥有最新的文件 hsmfs1.archiver.log 和最近的备份 20150324：

root@solaris:~# dir /var/adm/*.archiver.log
hsmfs1.archiver.log
root@solaris:~# dir /zfs1/hsmfs1_recovery/archivelogs
20150322    20150323    20150324
root@solaris:~#

3. 如果文件最近迁移到了替换介质，还要找到迁移日志。
在 migrationd.cmd 文件指定的日志记录目录中为每个源卷创建介质迁移日志。日志名为 media-type.vsn，其中 media-type 是附录 B 设备类型词汇表中所述的两位代码中的一个代码，vsn 是源卷的包含六个字符的字母数字卷序列号。

介质迁移日志的格式包含与归档程序日志相同的恢复信息，可按相同方式使用。有关几种格式差异的描述，请参见附录 A 了解归档程序和迁移日志。

4. 在新近恢复的文件系统中，标识任何已损坏的文件。使用命令 sfind mountpoint -damaged，其中 mountpoint 为挂载已恢复文件系统的目录。
在本示例中，我们在目录 /hsmfs1 中开始搜索，并找到六个已损坏文件：

root@solaris:~# sfind /hsmfs1 -damaged
./genfiles/ay0
./genfiles/ay1
./genfiles/ay2
./genfiles/ay5
./genfiles/ay6
./genfiles/ay9
root@solaris:~#

5. 搜索归档程序日志的最新副本中是否存在与每个已损坏文件相关的条目。使用命令 grep "file-name-expression" archiver-log，其中 file-name-expression 为一个与已损坏文件相匹配的正则表达式，而 archiver-log 为您要检查的归档程序日志副本的路径和名称。
在示例中，使用正则表达式 genfiles\/ay0 在最近的日志文件中搜索与文件 genfiles/ay0 相关的条目：

root@solaris:~# grep "genfiles\/ay0 " /var/adm/hsmfs1.archiver.log

6. 当您找到文件的条目时，请注意介质类型、卷序列号和其中归档数据文件的归档 (tar) 文件位置。另请注意文件类型，因为它会影响您恢复文件的方式。
在本示例中，我们找到文件 genfiles/ay0 的条目。日志条目显示该文件的归档 (A) 时间为 2015 年 3 月 4 日晚上 9:49，使用的是 LTO (li) 卷 VOL012。该文件存储在位于十六进制位置 0x78 (78) 的磁带归档文件中。该文件是常规文件，类型为 f：

root@solaris:~# grep "genfiles\/ay0 " /var/adm/hsmfs1.archiver.log
A 2015/03/04 21:49:15 li VOL012 SLOT12 allsets.1 78.1 hsmfs1 7131.14 8087 genfiles/ay0 f 0 51
root@solaris:~#

有关归档程序日志条目中字段的详细解释，请参见附录 A 了解归档程序和迁移日志。

7. 如果您在当前的归档程序日志副本中找不到已损坏文件的条目，请使用在创建恢复点文件之后创建的任何备份归档日志来重复搜索。
归档程序日志循环频繁。因此，如果您保留多个归档程序日志副本，那么也许可以使用在当前归档程序日志中所涵盖的时间段之前所创建的归档副本来恢复已损坏的文件。

8. 接下来，查找在创建恢复点之后归档的文件。

查找在创建恢复点之后归档的丢失的文件

samfsrestore 过程从恢复点文件恢复文件系统元数据的副本，因此您可以在磁带上找到相应的文件系统数据并将其恢复至其在文件系统中的适当位置。不过，会在文件系统丢失之前创建恢复点文件。这些文件不能包含之后创建和归档的文件的元数据。

通常，有些文件是在创建最后一个恢复点之后和文件系统丢失之前归档的。由于这些文件的元数据未位于恢复点文件中，因此 samfsrestore 无法对其进行恢复，即使作为损坏的文件进行恢复也不行。不过，文件数据确实位于归档介质上。因此，您可以使用归档日志重新创建元数据并将文件恢复至其在文件系统中的适当位置。如果在文件系统丢失之前文件已迁移到替换介质，您还可以使用介质迁移日志。

1. 如果您尚未执行该操作，以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 标识最新的可用归档程序日志文件。
如果服务器上的归档程序日志仍然可用，则它有可能包含最新的信息。否则，您需要使用备份副本。

在本示例中，归档程序日志文件 hsmfs1.archiver.log 位于服务器上的 /var/adm/ 子目录中。我们还为已知位置（独立文件系统 /zfs1 上的子目录 hsmfs1_recovery/archlogs）中的归档程序日志文件标注了日期。因此，我们同时拥有最新的文件 hsmfs1.archiver.log 和最近的备份 20150324：

root@solaris:~# dir /var/adm/*.archiver.log
hsmfs1.archiver.log
root@solaris:~# dir /zfs1/hsmfs1_recovery/archivelogs
20150322    20150323    20150324
root@solaris:~#

3. 如果文件最近迁移到了替换介质，还要找到迁移日志。
在 migrationd.cmd 文件指定的日志记录目录中为每个源卷创建介质迁移日志。日志名为 media-type.vsn，其中 media-type 是附录 B 设备类型词汇表中所述的两位代码中的一个代码，vsn 是源卷的包含六个字符的字母数字卷序列号。

介质迁移日志的格式包含与归档程序日志相同的恢复信息，可按相同方式使用。有关几种格式差异的描述，请参见附录 A 了解归档程序和迁移日志。

4. 搜索归档程序日志的最新副本中是否存在创建恢复点之后创建的条目。使用命令 grep "time-date-expression" archiver-log，其中 time-date-expression 为一个与您要开始搜索的日期和时间相匹配的正则表达式，而 archiver-log 为您要检查的归档程序日志副本的路径和名称。
在本示例中，我们于 2015 年 3 月 4 日凌晨 2:02 丢失了文件系统。最后一个恢复点文件的创建时间为 2015 年 3 月 23 日凌晨 2:10。因此，我们使用正则表达式 ˆA 2015\/03\/2[45] 搜索在 3 月 23 日或 24 日记录的归档文件的最近日志文件：

root@solaris:~# grep "ˆA 2015\/03\/2[34]" /var/adm/hsmfs1.archiver.log

5. 当您找到未恢复文件归档副本的条目时，请注意路径、名称、文件类型、介质类型和位置信息。
列出的文件类型包括 f（表示常规文件）、R（表示可移除介质）或 S（表示分段文件中数据段）。介质类型为双字符代码（请参见附录 B 设备类型词汇表）。

要找到备份副本，您需要用于存储该副本的介质卷的卷序列号。如果副本存储在顺序访问介质（如磁带）中，还要注意十六进制值，该值表示归档 (tar) 文件的起始位置。如果副本存储在随机访问介质（如归档磁盘）中，请注意相对于卷序列号的 tar 文件的路径和文件名。最后，如果该文件已分段，请注意段长度。

在以下示例中，归档程序日志条目显示，以下文件是在创建最后一个恢复点之后归档的：

root@solaris:~# grep "ˆA 2015\/03\/2[34]" /var/adm/hsmfs1.archiver.log
A 2015/03/23 10:43:18 li VOL002 all.1 111.1 hsmfs1 1053.3 69 genfiles/hops f 0 0
A 2015/03/23 10:43:18 li VOL002 all.1 111.3 hsmfs1 1051.1 104 genfiles/anic f 0 0
A 2015/03/23 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0
A 2015/03/23 13:09:06 li VOL004 all.1 212.20 hsmfs1 1534.2 1497 genfiles/genA9 f 0 0
A 2015/03/23 13:10:15 li VOL004 all.1 212.3f hsmfs1 1533.2 6491 genfiles/genA2 f 0 0
A 2015/03/23 13:12:25 li VOL003 all.1 2.5e hsmfs1 1532.2 17717 genfiles/genA13 f 0 0
A 2015/03/23 13:12:28 li VOL003 all.1 2.7d hsmfs1 1531.2 14472 genfiles/genA4 f 0 0
A 2015/03/23 13:12:40 li VOL003 all.1 2.9c hsmfs1 1530.2 19971 genfiles/genA45 f 0 0
A 2015/03/23 21:49:15 dk DISKVOL1/f2 all.1 2.2e9 hsmfs1 1511.2 8971 socfiles/spcC4 f 0 0
A 2015/03/23 21:49:15 dk DISKVOL1/f2 all.1 2.308 hsmfs1 1510.2 7797 spcfiles/spcC5 f 0 0
A 2015/03/23 14:01:47 li VOL013 all.1 76a.1 hsmfs1 14.5 10485760 bf/dat011/1 S 0 51
A 2015/03/23 14:04:11 li VOL013 all.1 76a.5002 hsmfs1 15.5 10485760 bf/dat011/2 S 0 51
A 2015/03/23 14:06:24 li VOL013 all.1 1409aa4.1 hsmfs1 16.5 184 bf/dat011/3 S 0 51
A 2015/03/23 18:28:51 li VOL036 all.1 12d.1 hsmfs1 11731.1 89128448  rf/rf81 f 0 210
A 2015/03/23 18:28:51 li VOL034 all.1 15f.0 hsmfs1 11731.1 525271552 rf/rf81 f 1 220
root@solaris:~#

我们注意以下信息：

- 八个常规（类型 f）文件归档 (A) 在 LTO (li) 介质上：genfiles/hops 和 genfiles/anic 位于卷 VOL002 上的位置 0x111 中，genfiles/genA0、genfiles/genA9 和 genfiles/genA2 位于卷 VOL004 上的位置 0x212 中，而 genfiles/genA13、genfiles/genA4 和 genfiles/genA45 位于卷 VOL003 上的位置 0x212 中。

- 两个常规（类型 f）文件归档 (A) 在磁盘 (dk) 介质上：spcfiles/spcC4 和 spcfiles/spcC5 位于卷 DISKVOL1 上的归档文件 DISKVOL1 \f2 中。

- 由三部分组成的一个分段（类型 S）文件归档在 LTO (li) 介质上：bf/dat011，其中两个段起始位置为 0x76a，一个段起始位置为卷 VOL013 上的 1409aa4。段 /1 长度为 10485760 字节，段 /2 为 10485622 字节，段 /3 为 184 字节。

- 一个常规（类型 f）卷溢出文件归档 (A) 在 LTO (li) 介质上：rf/rf81，起始位置为卷 VOL036 上的 0x12d，而持续位置为卷 VOL034 上的 0x15f。

有关归档程序日志条目中字段的详细解释，请参见附录 A 了解归档程序和迁移日志。

6. 创建恢复点文件后，使用创建的任何备份归档日志重复搜索。
归档程序日志循环频繁。因此，如果您保留多个归档程序日志副本，那么也许可以使用在当前归档程序日志中所涵盖的时间段之前所创建的归档副本来恢复已损坏的文件。

7. 现在，恢复损坏的和/或丢失的文件。

恢复损坏的和/或丢失的文件

在给定介质卷和介质上归档 (tar) 文件位置的情况下，恢复丢失或已损坏的文件只不过是访问 tar 文件和提取所需数据文件的过程。如果归档文件驻留在归档磁盘设备上，该过程非常简单，因为 tar 文件驻留在文件系统挂载点下可随机访问的目录中。然而，如果 tar 文件驻留在高容量的顺序访问介质（如磁带）中，就会增加难度：在将归档文件回写到随机访问磁盘设备中之前，我们无法从归档文件中正常提取所需的数据文件。由于归档文件可能会很大，因此该过程可能会很耗时并在恢复情况中很难操作。因此，以下过程利用了 Oracle HSM 命令 request，该命令将归档文件读取到内存中，并使文件像从磁盘中读取一样可用。

请尽可能恢复已损坏和丢失的常规文件。对于每个文件，请执行以下操作：

1. 通过恢复未跨多个卷的常规文件来启动。使用恢复丢失和已损坏的常规文件 过程。

2. 接下来，恢复分段文件。使用恢复丢失和已损坏的分段文件 过程。

3. 然后恢复跨多个卷的常规文件。使用恢复丢失和已损坏的卷溢出文件 过程。

4. 在您恢复所有具有副本的丢失或损坏的文件之后，通过从 archiver.cmd 文件中删除 wait 指令重新启用归档。通过从 recycler.cmd 文件中删除 -ignore 参数重新启用回收。
文件系统尽可能接近其原始状态。已损坏和丢失的文件仍无法恢复。

5. 在恢复了有副本的所有缺失的或损坏的文件之后，转到将归档文件系统恢复为正常操作。

在没有恢复点文件的情况下，从归档介质中恢复文件和目录

如果必须直接从归档介质恢复文件系统，没有恢复点文件的帮助，则可这样操作。执行如下操作：

1. 如果您尝试从光学介质中恢复文件，请就此停止，并与 Oracle 支持服务部门联系以获取帮助。

2. 对文件系统禁用网络文件系统 (Network File System, NFS) 共享。

3. 禁用归档和回收。使用停止归档和回收过程 中概述的方法。

4. 保留磁带机以专用于恢复过程。使用命令 samcmd unavail drive-equipment-number，其中 drive-equipment-number 为分配给 /etc/opt/SUNWsamfs/mcf 文件中的驱动器的设备序号。
samcmd unavail 命令使驱动器不可用于归档、回写和释放过程。在本示例中，我们保留驱动器 804

root@solaris:~# samcmd unavail 804
root@solaris:~#

5. 将文件 /opt/SUNWsamfs/examples/tarback.sh 复制到备用位置，如 /tmp。
tarback.sh 为可执行脚本，该脚本可从一组指定介质卷中恢复文件。该脚本针对每个卷上的每个归档 (tar) 文件运行命令 star -n。如果磁带上的备份副本在文件系统中没有对应的文件，或磁带上的副本比文件系统中的相应文件更新，则 star -n 会恢复该副本。

在本示例中，我们将脚本复制到 /tmp：

root@solaris:~# cp /opt/SUNWsamfs/examples/tarback.sh /tmp/tarback.sh
root@solaris:~#

6. 请使用文本编辑器打开 tarback.sh 文件副本。
在示例中，我们使用 vi 编辑器：

root@solaris:~# vi /opt/SUNWsamfs/examples/tarback.sh
#!/bin/sh
#   script to reload files from SAMFS archive tapes
STAR="/opt/SUNWsamfs/sbin/star"
LOAD="/opt/SUNWsamfs/sbin/load"
UNLOAD="/opt/SUNWsamfs/sbin/unload"
EQ=28
TAPEDRIVE="/dev/rmt/3cbn"
# BLOCKSIZE is in units of 512 bytes (e.g. 256 for 128K)
BLOCKSIZE=256
MEDIATYPE="lt"
VSN_LIST="VSNA VSNB VSNC VSNZ"
...

7. 如果 Oracle HSM 实用程序 star、load 和 unload 安装在非标准位置中，请在 tarback.sh 文件的副本中编辑默认命令路径。
在本示例中，所有实用程序安装在默认位置中，因此不需要编辑：

root@solaris:~# vi /opt/SUNWsamfs/examples/tarback.sh
#!/bin/sh
#   script to reload files from SAMFS archive tapes
STAR="/opt/SUNWsamfs/sbin/star"
LOAD="/opt/SUNWsamfs/sbin/load"
UNLOAD="/opt/SUNWsamfs/sbin/unload"
...

8. 在 tarback.sh 文件的副本中，找到变量 EQ。将其值设置为您为恢复用途保留的驱动器的设备序号。
在本示例中，我们设置 EQ=804：

root@solaris:~# vi /opt/SUNWsamfs/examples/tarback.sh
#!/bin/sh
#   script to reload files from SAMFS archive tapes
STAR="/opt/SUNWsamfs/sbin/star"
LOAD="/opt/SUNWsamfs/sbin/load"
UNLOAD="/opt/SUNWsamfs/sbin/unload"
EQ=804
...

9. 在 tarback.sh 文件的副本中，找到变量 TAPEDRIVE。将其值设置为设备的原始路径（括在双引号中）。
在本示例中，设备 804 的原始路径为 /dev/rmt/3cbn：

root@solaris:~# vi /opt/SUNWsamfs/examples/tarback.sh
#!/bin/sh
#   script to reload files from SAMFS archive tapes
STAR="/opt/SUNWsamfs/sbin/star"
LOAD="/opt/SUNWsamfs/sbin/load"
UNLOAD="/opt/SUNWsamfs/sbin/unload"
EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
...

10. 在 tarback.sh 文件的副本中，找到变量 BLOCKSIZE。将其值设置为所需块大小中 512 字节单元的数量。
在本示例中，针对 LTO-4 驱动器，我们需要 256 千字节的段大小。因此，我们指定 512：

LOAD="/opt/SUNWsamfs/sbin/load"
UNLOAD="/opt/SUNWsamfs/sbin/unload"
EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
BLOCKSIZE=512
...

11. 在 tarback.sh 文件的副本中，找到变量 MEDIATYPE。将其值设置为附录 B针对驱动器支持的介质类型列出的两字符介质类型代码。将该介质类型用双引号括住。
在示例中，使用 LTO-4 驱动器。因此，我们指定 li：

EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
BLOCKSIZE=512
MEDIATYPE="li"
...

12. 在 tarback.sh 文件的副本中，找到变量 VSN_LIST。提供空格分隔的卷序列号 (volume serial number, VSN)（用于标识可能包含您的文件备份副本的磁带）列表作为其值。使用双引号括起列表。
在本示例中，我们指定卷 VOL002、VOL003、VOL004、VOL013、VOL034 和 VOL036：

EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
BLOCKSIZE=512
MEDIATYPE="lt"
VSN_LIST="VOL002 VOL003 VOL004 VOL013 VOL034 VOL036"
...

13. 保存 tarback.sh 文件的副本。关闭编辑器。

EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
BLOCKSIZE=512
MEDIATYPE="lt"
VSN_LIST="VOL002 VOL003 VOL004 VOL013 VOL034 VOL036"
...
:wq
root@solaris:~#

14. 执行 /tmp/tarback.sh 脚本。

root@solaris:~# /tmp/tarback.sh

15. 对于每个恢复的文件，根据需要重新创建用户和组所有权、模式、扩展属性以及访问控制列表 (access control list, ACL)。
/tmp/tarback.sh 脚本无法恢复这些类型的元数据。

16. 在运行了 /tmp/tarback.sh 脚本并完成了恢复文件操作之后，转到将归档文件系统恢复为正常操作。

5 恢复丢失和已损坏的文件

本章概述了将单个文件恢复至文件系统的过程。本章涵盖以下主题：

- 使用恢复点文件恢复文件

- 使用日志条目恢复文件

- 恢复已损坏的归档副本。

使用恢复点文件恢复文件

在恢复丢失的或损坏的文件时，恢复点文件是最快速、最可靠、最彻底也最省力的方法。因此，如果可以使用恢复点文件，请继续如下操作：

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 如果您尚未停止归档和回收，请使用停止归档和回收过程中介绍的过程停止归档和回收

3. 在目标文件系统中，创建一个临时恢复目录以容纳所恢复的文件。
在本示例中，我们在重新创建的文件系统的挂载点 /hsmfs1 下创建临时目录 restore：

root@solaris:~# mkdir /hsmfs1/restore

4. 防止归档程序从临时目录中进行归档。使用命令 archive -r -n directory，其中：

- -r -n 递归禁用位于指定目录之中或之下的文件归档。

- directory 是临时恢复目录的路径和目录名称。

root@solaris:~# archive -r -n /hsmfs1/restore

5. 转到临时恢复目录。

root@solaris:~# cd /hsmfs1/restore

6. 标识最新的可用恢复点文件。
在本示例中，我们在已知位置（即独立文件系统 /zfs1 中的子目录 hsmfs1_recovery）为文件系统 hsmfs1 创建了标注日期的恢复点文件。因此可轻松找到最新文件 20150324：

root@solaris:~# dir /zfs1/hsmfs1_recovery/
20150321    20150322    20150323    20150324
root@solaris:~#

7. 请确保您需要恢复的文件位于恢复点文件中。在命令 samfsrestore -t -f recovery-point 的输出搜索所需的文件，其中：

- -t 显示目录。

- -f recovery-point-file 会指定选定恢复点文件的路径和文件名称。

在本示例中，我们尝试恢复文件 genw445。因此，我们使用恢复点文件 /zfs1/hsmfs1_recovery/20150324 运行命令 samfsrestore -t。为了简化搜索，我们将 samfsrestore -t 的输出通过管道传输至 Solaris grep 命令和正则表达式 "genw445"（请注意，下面的命令是作为单行输入的－使用反斜杠字符对换行符进行转义）：

root@solaris:~# samfsrestore -t -f /zfs1/hsmfs1_recovery/20150324 | \
grep "genw445"
./genfiles/genw445
root@solaris:~#

8. 将文件的 inode 信息恢复至当前目录。使用命令 samfsrestore -f recovery-point file，其中：

- -f recovery-point-file 会指定选定恢复点文件的路径和文件名称。

- file 指定恢复点文件针对您要恢复的文件所列出的精确路径和名称。

在本示例中，我们从恢复点文件 /zfs1/hsmfs1_recovery/20150324 恢复 ./genfiles/genw445（请注意，下面的命令是作为单行输入的－使用反斜杠字符对换行符进行转义）：

root@solaris:~# samfsrestore -f /zfs1/hsmfs1_recovery/20150324 \
./genfiles/genw445
root@solaris:~#

9. 确保已正确恢复该文件。使用命令 sls -D file，其中，file 用于指定相对于临时恢复目录的文件的路径和名称。
在本示例中，已将文件 genfiles/genw445 恢复至临时目录 /hsmfs1/restore/：

root@solaris:~# sls -D genfiles/genw445
genfiles/genw445:
mode: -rw-r--r--    links:   1  owner: data        group: hsmfs1
length:     14975  inode:    25739.1
offline; archdone;
copy 1: ---- Mar  4 11:55 8ae.1 xt 000000
copy 2: ---- Mar  4 15:51 cd3.7f57 xt 000000
access:      Mar  4 11:55  modification: Mar  4 21:50
changed:     Mar  4 11:50  attributes:   Mar  4 21:50
creation:    Mar  4 11:50  residence:    Mar  4 21:50
root@solaris:~#

10. 如果已正确恢复该文件，则将其移动至文件系统中的正确位置。
在本示例中，我们将文件 genw445 从临时工作目录 /hsmfs1/restore/genfiles/ 移动至其位于 /hsmfs1/genfiles/ 的原始位置：

root@solaris:~# mv -f genfiles/genw445 /hsmfs1/genfiles/genw445
root@solaris:~#

11. 重复上述过程，直到所有丢失的文件恢复为止。

12. 完成恢复过程。转至将归档文件系统恢复为正常操作。

使用日志条目恢复文件

如果涉及到大量文件，那么使用归档程序日志和/或介质迁移日志恢复文件始终是一个单调乏味、劳动密集型的过程。因此，只要有可能，仅当恢复点无法恢复您需要的文件时，才使用本节中阐述的流程。

虽然在所有情况下从归档介质中恢复文件的过程在本质上是相同的，但对于不同的文件类型，细节是不同的。因此请选择针对您要恢复的文件类型的过程：

- 恢复丢失和已损坏的常规文件

- 恢复丢失和已损坏的分段文件

- 恢复丢失和已损坏的卷溢出文件。

请注意，您从介质恢复副本时文件可能无法恢复到您所期望的确切位置。创建归档副本时，文件会恢复到其位置。因此，随后移动的文件将不会恢复到这些文件当初丢失时所在的原始目录中。

恢复丢失和已损坏的常规文件

对于每个您需要恢复的文件，执行以下操作：

1. 如果您尚未执行该操作，以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 如果您尚未停止归档和回收，请使用停止归档和回收过程中介绍的过程停止归档和回收

3. 转到您要恢复的文件系统的根目录。
Oracle HSM 归档文件相对于文件系统根目录存储副本。因此要将它们恢复到其原始位置，我们要从根目录恢复它们。

在本示例中，我们转到 hsmfs1 文件系统的根：

root@solaris:~# cd /hsmfs1
root@solaris:~#

4. 如果您拥有常规文件上次归档期间的归档程序日志，请查找该文件的最新条目。
在第一个示例中，我们查找常规（类型 f）文件 genA0 的条目：

A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0

在第二个示例中，我们查找常规（类型 f）文件 spcC4 的条目：

A 2015/03/03 21:49:15 dk DISKVOL1/f2 all.1 2.2e9 hsmfs1 1511.2 8971 socfiles/spcC4 f 0 0

5. 找到所需文件的日志条目后，请注意介质类型、介质的卷序列号以及相对于文件系统根目录的文件的名称。
在第一个示例中，文件 genA0 位于卷序列号 (Volume Serial Number, VSN) 为 VOL004 的 LTO (li) 磁带卷上。该文件最初存储在文件系统目录 /hsmfs1/genfiles/ 中：

A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0

在第二个示例中，文件 spcC4 位于卷序列号为 DISKVOL1 的磁盘归档 (dk) 中。该文件最初存储在文件系统目录 /hsmfs1/socfiles/ 中：

A 2015/03/03 21:49:15 dk DISKVOL1/f2 all.1 2.2e9 hsmfs1 1511.2 8971 socfiles/spcC4 f 0 0

6. 如果所需文件驻留在顺序访问介质（如磁带）中，还要注意十六进制值，该值表示归档 (tar) 文件的起始位置。
在本示例中，文件 genA0 位于磁带上，起始位置为 0x212 (212)：

A 2015/03/03 13:09:05 li VOL004 all.1 212.1 hsmfs1 1535.2 1971 genfiles/genA0 f 0 0

7. 如果所需的文件位于随机访问介质（如归档磁盘）中，还请注意相对于卷序列号的 tar 文件的路径和文件名。
在本示例中，文件 spcC4 位于 f2 子目录中，该子目录恰好位于磁盘卷 DISKVOL1 的根目录之下：

A 2015/03/03 21:49:15 dk DISKVOL1/f2 all.1 2.2e9 hsmfs1 1511.2 8971 socfiles/spcC4 f 0 0

8. 如果您要恢复的文件已归档到磁盘介质，请从磁盘卷上的 tar 文件中提取丢失或已损坏文件的归档副本。使用命令 star -xv -f tarfile file，其中：

- tarfile 是归档文件的名称。

- file 是需要恢复的文件的路径（相对于文件系统根目录）和名称。

star 命令为 GNU tar 的增强型 Oracle HSM 版本，可从归档文件恢复指定的文件。

在本示例中，我们从 tar 文件 DISKVOL1/f2 中提取数据文件 socfiles/spcC4。该文件恢复到 /hsmfs1/socfiles/spcC4：

root@solaris:~# star -xvf DISKVOL1/f2 socfiles/spcC4

9. 如果您已从磁盘归档恢复所需的文件，则继续恢复丢失和已损坏的常规文件，直到已恢复所有所需的文件。

10. 如果您要恢复的文件归档在可移动介质（如磁带）中，请在恢复的文件系统中创建一个目录来容纳临时归档文件。
在本示例中，我们创建目录 /hsmfs1/tars

root@solaris:~# mkdir /hsmfs1/tars

11. 将介质放置在归档文件（该文件保存已归档副本）的 tar 文件头的开头处，并将归档从介质读取到内存。使用命令 request -m media-type -v volume-serial-number -p 0xposition path/requestfile，其中：

- -m media-type 指定附录 B中列出的两字符介质类型代码之一。

- -v volume-serial-number 指定用于标识介质卷的六字符字母数字代码。

- -p 0xposition 指定您在归档程序日志条目中注明的十六进制起始位置。

- path 为临时恢复目录的路径。

- requestfile 为您要用于内存 tar 文件（request 命令从介质中读取该文件）的名称。

在本示例中，我们从 LTO (li) 卷 VOL012 上的位置 0x78 开始创建请求文件 /hsmfs1/tars/currentrequest：

root@solaris:~# request -m li -v VOL012 -p 0x78 /hsmfs1/tars/currentrequest

12. 从您在前一步骤中创建的内存 tar 文件中提取丢失或已损坏的文件的归档副本。使用命令 star -xv -f requestfile，其中：

- requestfile 是内存 tar 文件的名称。

- file 是需要恢复的文件的路径（相对于文件系统根目录）和名称。

star 命令为 GNU tar 的增强型 Oracle HSM 版本，可从请求文件（归档文件的内存副本）恢复指定的文件。

在本示例中，我们从请求文件 tars/currentrequest 提取数据文件 genfiles/genA0。该文件恢复到 /hsmfs1/genfiles/genA0：

root@solaris:~# star -xvf tars/currentrequest genfiles/genA0

13. 设置任何必需的文件属性。
从 tar 文件恢复文件时，如果没有 samfsdump 或 qfsdump 恢复点文件，则原始文件属性将丢失。必须使用默认属性值从头开始为该文件创建 .inodes 文件。

14. 重复上述过程，直到所有必需的文件恢复为止。

15. 如果需要，恢复丢失和损坏的分段文件和/或卷溢出文件。

16. 否则，完成恢复过程。转至将归档文件系统恢复为正常操作。

恢复丢失和已损坏的分段文件

恢复分段文件与恢复常规文件十分相似。但是，您恢复的是各个段，而不是文件本身。因此，要恢复文件，您必须将各个段重装到单个文件中，然后对结果重新分段。对于每个您需要恢复的文件，执行以下操作：

1. 如果您尚未执行该操作，以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 如果您尚未执行归档和回收，请使用 停止归档和回收过程 中的过程执行归档和回收

3. 如果您拥有分段文件上次归档期间的归档程序日志，请搜索分段（类型 S）文件的条目。选择所需文件的段的最近条目。

A 2015/03/03 14:01:47 li VOL013 all.1 76a.1 hsmfs1 14.5 10485760 bf/dat011/1 S 0 51
A 2015/03/03 14:04:11 li VOL013 all.1 2476f.5002 hsmfs1 15.5 10485760 bf/dat011/2 S 0 51
A 2015/03/03 14:06:24 li VOL013 all.1 1409aa4.1 hsmfs1 16.5 184 bf/dat011/3 S 0 51

4. 找到最新的段条目后，注意以下详细信息：

- 介质类型

- 存储文件段的介质卷的卷序列号

- 存储段的归档 (tar) 文件的十六进制起始位置

- 分段文件相对于文件系统的根目录的路径和名称

- 文件中段的数量。

在本示例中，将文件 dat011 分为三个段（1、2 和 3）。将这三个段存储在三个归档文件中，这些文件都位于卷序列号为 VOL013 的单个 LTO (li) 磁带卷上。这三个归档文件的起始位置为 0x76a (76a)、0x2476f (2476f) 和 0x1409aa4 (1409aa4)。

A 2015/03/03 14:01:47 li VOL013 all.1 76a.1 hsmfs1 14.5 10485760 bf/dat011/1 S 0 51
A 2015/03/03 14:04:11 li VOL013 all.1 2476f.5002 hsmfs1 15.5 10485760 bf/dat011/2 S 0 51
A 2015/03/03 14:06:24 li VOL013 all.1 1409aa4.1 hsmfs1 16.5 184 bf/dat011/3 S 0 51

5. 转到您要恢复的文件系统的根目录。
Oracle HSM 归档文件相对于文件系统根目录存储副本。因此要将它们恢复到其原始位置，我们要从根目录恢复它们。

在本示例中，我们转到 hsmfs1 文件系统的根：

root@solaris:~# cd /hsmfs1

6. 在恢复的文件系统中，创建一个目录以保存临时归档文件。
在本示例中，我们创建目录 /hsmfs1/tars

root@solaris:~# mkdir /hsmfs1/tars

7. 将介质放置在保存一个或多个文件段的已归档副本的每个归档文件开头处，并将归档从介质读取到内存。使用命令 request -m media-type -v volume-serial-number -p 0xposition path/requestfile，其中：

- -m media-type 指定附录 B中列出的两字符介质类型代码之一。

- -v volume-serial-number 指定用于标识介质卷的六字符字母数字代码。

- -p 0xposition 指定您在归档程序日志条目中注明的十六进制起始位置。

- path 为临时恢复目录的路径。

- requestfile 为您要用于内存 tar 文件（request 命令从介质中读取该文件）的名称。

在本示例中，我们需要创建两个请求文件。第一个请求文件 /hsmfs1/tars/request76a 装入的归档文件从 LTO (li) VOL013 上的位置 0x76a 开始。此归档同时包含前两个段。第二个请求文件 /hsmfs1/tars/request1409aa4 在 0x1409aa4 位置装入归档文件，在本示例中位于同一个卷上（段可驻留在库的任何卷中）：

root@solaris:~# request -m li -v VOL013 -p 0x76a /hsmfs1/tars/request76a
root@solaris:~# request -m li -v VOL013 -p 0x1409aa4 \
/hsmfs1/tars/request1409aa4

8. 从您在前一步骤中创建的内存 tar 文件中提取丢失或已损坏文件的备份副本的每个段。使用命令 star -xv -f requestfile segment，其中 requestfile 为内存 tar 文件的名称，而 segment 为您需要恢复的文件的每个段的路径（相对于文件系统根目录）和名称。
star 命令为 GNU tar 的增强型 Oracle HSM 版本，该命令可借助请求文件从您指向的归档文件中恢复指定文件。

在本示例中，我们从请求文件（内存 tar 文件）tars/request76a 中提取数据文件 bf/dat011 的三个段中的两个段，并从请求文件 tars/request1409aa4 中提取一个段。文件会分为三个独立的部分恢复到目录 /hsmfs1/bf/dat011/ 中：

root@solaris:~# star -xvf tars/request76a bf/dat011/1
root@solaris:~# star -xvf tars/request76a bf/dat011/2
root@solaris:~# star -xvf tars/request1409aa4 bf/dat011/3

列出 /hsmfs1/bf/dat011 的内容时，会针对每个已恢复段看到一个按顺序编号的文件：

root@solaris:~# ls /hsmfs/bf/dat011
total 40968
-rw-rw---- 1 root other 10485760 Mar  5 17:06 1
-rw-rw---- 1 root other 10485760 Mar  5 17:06 2
-rw-rw---- 1 root other      184 Mar  5 17:07 3
root@solaris:~#

9. 将已恢复段重装到单个未分段的临时文件中。
在本示例中，我们串联 /hsmfs1/bf/dat011/ 目录中的三个段，以创建文件 /hsmfs1/bf/dat011file：

root@solaris:~# cat /hsmfs/bf/dat011/1 /hsmfs/bf/dat011/2 \
/hsmfs/bf/dat011/3 > /hsmfs/bf/dat011file
root@solaris:~#

我们列出 /hsmfs1/bf/ 的内容时，新文件会显示在包含段的目录旁边。

root@solaris:~# ls -l /hsmfs/bf/dat011*
drwxr-xr-x 2 root root      4096 Mar  5 17:06 dat011
-rw-rw---- 1 root other 20971704 Mar  5 17:14 dat011file
root@solaris:~#

10. 删除相应段和包含这些段的目录。

root@solaris:~# rm -r /hsmfs/bf/dat011/
root@solaris:~#

11. 使用分段文件的原始路径和名称创建空文件。使用命令 touch file，其中 file 为原始路径和文件名。
在本示例中，我们创建空文件 /hsmfs/bf/dat011，这是我们正在恢复的分段文件的原始名称：

root@solaris:~# touch /hsmfs/bf/dat011
root@solaris:~#

12. 在新创建的空文件中设置 Oracle HSM 段属性。使用命令 segment -l segment-length file，其中 segment-length 为您在归档程序日志条目中注明的段长度，而 file 为分段文件的原始路径和名称。
在本示例中，归档程序日志显示文件 dat011 的段长度为 10485760（该文件在第三段结束，因此介质上数据的长度小于段长度）：

A 2015/03/03 14:01:47 li VOL013 all.1 76a.1 hsmfs1 14.5 10485760 bf/dat011/1 S 0 51
A 2015/03/03 14:04:11 li VOL013 all.1 76a.5002 hsmfs1 15.5 10485760 bf/dat011/2 S 0 51
A 2015/03/03 14:06:24 li VOL013 all.1 1409aa4.1 hsmfs1 16.5 184 bf/dat011/3 S 0 51

因此我们将空文件的段长度设置为 10485760：

root@solaris:~# segment -l 10485760 /hsmfs/bf/dat011
root@solaris:~#

13. 将未分段临时文件复制到空分段文件。
在本示例中，我们将 dat011file 复制到 dat011：

root@solaris:~# cp /hsmfs/bf/dat011file /hsmfs/bf/dat011
root@solaris:~#

我们使用命令 sls -2K hsmfs/bf/dat011 列出段时，它们列出如下。因此该文件已恢复。

root@solaris:~# sls -2K /hsmfs/bf/dat011
-rw-rw---- 1 root other        20971704     Mar  5 17:12 hsmfs/bf/dat011
---------- ----- sI {3,0,0,0}
-rw-rw---- 1 root other        10485760     Mar  5 17:12 hsmfs/bf/dat011/1
---------- ----- sS
-rw-rw---- 1 root other        10485760     Mar  5 17:12 hsmfs/bf/dat011/2
---------- ----- sS
-rw-rw---- 1 root other             184     Mar  5 17:12 hsmfs/bf/dat011/3
---------- ----- sS

14. 设置任何其他必需的文件属性。
从 tar 文件恢复文件时，如果没有 samfsdump 或 qfsdump 恢复点文件，则原始文件属性将丢失。必须使用默认属性值从头开始为该文件创建 .inodes 文件。

15. 现已恢复该文件。删除未分段临时文件。
在本示例中，我们删除 dat011file：

root@solaris:~# rm /hsmfs/bf/dat011file
root@solaris:~#

16. 重复上述过程，直到所有必需的文件恢复为止。

17. 完成恢复过程。转至将归档文件系统恢复为正常操作。

恢复丢失和已损坏的卷溢出文件

卷溢出文件是跨多个介质卷的常规文件。因此恢复卷溢出文件与恢复其他任何常规文件十分相似。但是，首先必须将驻留在多个卷上的归档文件的部分合并到磁盘上的单个归档文件中，然后再从归档中提取数据文件。因此，对于您需要恢复的每个文件，请执行以下操作：

1. 如果您尚未执行该操作，以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 如果您尚未执行归档和回收，请使用 停止归档和回收过程 中的过程执行归档和回收

3. 如果您拥有卷溢出文件上次归档期间的归档程序日志，请查找该文件的最新条目。请注意介质的卷序列号、文件每个部分的长度、相对于文件系统根目录的文件的路径和名称，以及文件中的部分数目。
在本示例中，我们知道文件 /hsmfs1/rf/rf81 为卷溢出，因为它是一个常规的 f 类型文件，该文件驻留在 VOL036 和 VOL034 这两个卷中，并拥有两个部分，即 0 和 1：

A 2015/03/03 18:28:51 li VOL036 all.1 12d.1 hsmfs1 11731.1 89128448  rf/rf81 f 0 210
A 2013/08/23 18:28:51 li VOL034 all.1 15f.0 hsmfs1 11731.1 525271552 rf/rf81 f 1 220

4. 转到您要恢复的文件系统的根目录。
Oracle HSM 归档文件相对于文件系统根目录存储副本。因此，要将它们恢复到其原始位置，我们要将它们恢复到根目录。

在本示例中，我们转到 hsmfs1 文件系统的根：

root@solaris:~# cd /hsmfs1

5. 在继续前，请确保文件系统中包含足够的可用空间，可容纳文件的大小至少是您要恢复的文件大小的两倍。
对于本示例中的文件 rf/rf81，基于该文件两部分的大小，我们大约需要 1.2 千兆字节的可用空间：2 x (89128448 + 525271552) = 1228800000 字节。

6. 在恢复的文件系统中，创建一个目录以保存临时归档文件。
在本示例中，我们创建目录 /hsmfs1/tars

root@solaris:~# mkdir /hsmfs1/tars

7. 将介质放置在保存一个或多个文件段的已归档副本的每个归档文件开头处，并将归档从介质读取到内存。使用命令 request -m media-type -v volume-serial-number -p 0xposition path/requestfile，其中：

- -m media-type 指定附录 B中列出的两字符介质类型代码之一。

- -v volume-serial-number 指定用于标识介质卷的六字符字母数字代码。

- -p 0xposition 是您在归档程序日志条目中注明的十六进制起始位置。

- path 为临时恢复目录的路径。

- requestfile 为您要用于内存 tar 文件（request 命令从介质中读取该文件）的名称。

在本示例中，我们创建两个请求文件。第一个请求文件 /hsmfs1/tars/requestVOL036 装入的归档文件从 LTO (li) VOL036 上的位置 0x12d 开始。第二个请求文件 /hsmfs1/tars/requestVOL034 在 LTO (li) VOL034 上的位置 0x15f 装入归档文件：

root@solaris:~# request -m li -v VOL036 -p 0x12d /hsmfs1/tars/requestVOL036
root@solaris:~# request -m li -v VOL034 -p 0x15f /hsmfs1/tars/requestVOL034

8. 将您所创建的每个内存 tar 文件保存到磁盘中，作为归档文件的一部分。使用命令 dd if= requestfile of=archive_section，其中 requestfile 为内存 tar 文件的路径和名称，而 archive_section 为每部分归档文件的路径和名称。
在本示例中，我们将请求文件（内存 tar 文件）tars/requestVOL036 和 tars/requestVOL034 另存为 tars/archive_part1 和 tars/archive_part2：

root@solaris:~# dd if=tars/requestVOL036 of=tars/archive_part1
root@solaris:~# dd if=tars/requestVOL034 of=tars/archive_part2
root@solaris:~#

9. 将各个部分重新组装到单个归档文件中。
在本示例中，我们将 tars/archive_part1 和 tars/archive_part2 这两个部分进行串联，以创建单个归档文件 /tars/archive_complete：

root@solaris:~# cat tars/archive_part1 tars/archive_part2 > \
tars/archive_complete
root@solaris:~#

10. 从您在前一步骤中创建的归档 (tar) 文件中提取丢失或已损坏的卷溢出文件的备份副本。使用命令 star -xv -f tarfile file，其中 tarfile 为归档文件的名称，而 file 为您需要恢复的卷溢出文件的路径（相对于文件系统根目录）和名称。
star 命令为 GNU tar 的增强型 Oracle HSM 版本，该命令可借助请求文件从您指向的归档文件中恢复指定文件。

在本示例中，我们从 tar 文件 tars/archive_complete 中提取卷溢出文件 rf/rf81：

root@solaris:~# star -xvf tars/archive_complete rf/rf81

11. 设置任何其他必需的文件属性。
从 tar 文件恢复文件时，如果没有 samfsdump 或 qfsdump 恢复点文件，则原始文件属性将丢失。必须使用默认属性值从头开始为该文件创建 .inodes 文件。

12. 现已恢复该卷溢出文件。删除临时文件。
在本示例中，我们删除 dat011file：

root@solaris:~# rm tars/archive_*
root@solaris:~#

13. 重复上述过程，直到所有必需的文件恢复为止。

14. 完成恢复过程。转至将归档文件系统恢复为正常操作。

恢复已损坏的归档副本

已损坏的归档副本是无法回写到磁盘高速缓存中的文件副本。有时，该文件只是由于间歇性、与硬件相关的 I/O 问题而无法回写，此问题可轻松解决。而有时候，已损坏的副本被破坏，其数据不可恢复。这种情况下，您唯一的选择是从备用副本中恢复该文件。

要确定和管理已损坏的副本，请执行以下操作：

1. 标识拥有已损坏归档副本的文件。使用命令 sfind mountpoint -any_copy_d，其中 mountpoint 为挂载已恢复文件系统的目录。
在本示例中，我们在目录 /hsmfs1 中开始搜索，并找到拥有已损坏副本的三个文件：

root@solaris:~# sfind /hsmfs1 -any_copy_d
./genfiles/ab09
./genfiles/ab11
./genfiles/ay12
root@solaris:~#

2. 对于您已标识的每个文件，请标识已损坏的副本。使用命令 sls -D file，其中 file 为您要检查的路径和文件名。
已损坏的副本带有 D 标志。在本示例中，/hsmfs1/genfiles/ab09 的 copy 2 和 /hsmfs1/genfiles/ab11 的 copy 1 已损坏：

root@solaris:~# sls -D /hsmfs1/genfiles/ab09
/hsmfs1/genfiles/ab09:
mode: -rw-r-----  links:   1  owner: root group: other
length:    306581  admin id: 0  inode:    11748.11
project: system(0)
copy 1: ---- Mar 11 13:52       76f.421bc li VOL011
copy 2: ---D Mar 31 14:02       286.1324f li VOL021
access:   Mar 11 13:50  modification: Mar 11 13:50
changed:  Mar 11 13:50  attributes:   Mar 11 13:50
creation: Mar 11 13:50  residence:    Mar 11 13:50
root@solaris:~# sls -D /hsmfs1/genfiles/ab11
/hsmfs1/genfiles/ab11:
mode: -rw-r-----  links:   1  owner: root group: other
length:    380051  admin id: 0  inode:    1460.1
project: system(0)
copy 1: ---D Mar 01 10:21       431.21bc6 li VOL024
access:   Mar 01 10:21  modification: Mar 01 10:21
changed:  Mar 01 10:21  attributes:   Mar 01 10:21
creation: Mar 01 10:21  residence:    Mar 01 10:21
root@solaris:~#

3. 如果有备用副本，则取消归档已损坏的副本。使用命令 unarchive -c CopyNumber file，其中 CopyNumber 为一个整数，代表副本编号，而 file 为已损坏文件的路径和文件名。在此处停止。
如果您取消归档已损坏的副本，则 Oracle HSM 会从剩余的副本中回写，并在下次归档程序进程运行时创建其他归档副本。在本示例中，我们拥有 /hsmfs1/genfiles/ab09 的另一个未损坏副本，因此我们取消归档已损坏的副本，即副本 2：

root@solaris:~# unarchive -c 2 /hsmfs1/genfiles/ab09
root@solaris:~#

4. 如果您没有其他副本，请修复已损坏的副本。使用命令 undamage -cCopyNumber file，其中 CopyNumber 为一个整数，代表副本编号，而 file 为已损坏文件的路径和文件名。
有时，文件由于间歇性、与硬件相关的 I/O 错误而无法回写。清除已损坏文件并重新回写可能可以解决此问题。在本示例中，只有 /hsmfs1/genfiles/ab11 的一个副本：

root@solaris:~# undamage -c1 /hsmfs1/genfiles/ab11

5. 尝试回写该副本。使用命令 stage -c CopyNumber -I file，其中 CopyNumber 为一个整数，代表副本编号，而 file 为该文件的路径和文件名。
可选 -I (immediate) 参数会将回写操作推送到队列头：

root@solaris:~# stage -c 1 -I /hsmfs1/genfiles/ab11

6. 如果回写成功，请在此处停止。

7. 如果回写再次失败，Oracle HSM 会再次设置已损坏标志。针对已损坏副本，记下 sls -D 命令的输出中的主 inode 编号。
在本示例中，文件 /hsmfs1/genfiles/ab11 的 inode 编号为 1460：

root@solaris:~# sls -D /hsmfs1/genfiles/ab11
/hsmfs1/genfiles/ab11:
mode: -rw-r-----  links:   1  owner: root group: other
length:    380051  admin id: 0  inode:    1460.1
project: system(0)
copy 1: ---D Mar 01 10:21       431.21bc6 li VOL024
...
root@solaris:~#

8. 查找可能的原因。首先，检查 Oracle HSM /var/adm/sam-log 文件中是否存在与拥有已损坏副本的文件有关的回写相关消息。
可采用多种方式执行搜索。在示例中，使用 Solaris cat 命令列出了日志文件的内容，并通过管道将输出传递到 grep 以及与 inode 编号相匹配的正则表达式中。我们找到了两条消息。两条消息均指示 I/O 错误，其中一条消息明确表明设备 (eq) 序号 804（我们的其中一个磁带机）：

root@solaris:~# cat /var/adm/sam-log | grep "inode 1460"
Mar 11 15:35:44 server1 genu-20[8899]: Stage request canceled for inode 1460 (eq 804): I/O error.
Jan 11 15:35:44 server1 samfs[8894]: /sam4 inode 1460.1 - Archive copy 1 marked damaged: I/O error

9. 如果 /var/adm/sam-log 文件表明特定 Oracle HSM 设备序号，请检查设备日志 /var/opt/SUNWsamfs/devlog/drive-equipment-number，其中 drive-equipment-number 为 /var/adm/sam-log 文件中列出的序号。

10. 如果问题显示为特定于具体的某一磁带机，请使用命令 samcmd unavail drive-equipment-number 让关联磁带机不可用于回写过程。然后取消破坏相应副本，并尝试再次回写该副本。

root@solaris:~# samcmd unavail 804
root@solaris:~# stage -c 1 -I /hsmfs1/genfiles/ab11
root@solaris:~# undamage -c1 /hsmfs1/genfiles/ab11
root@solaris:~#

11. 如果回写再次失败，或没有任何单个磁带机显示为出故障，请尝试使用 request 和 star 命令（如使用日志条目恢复文件中所述）或 Solaris 实用程序（如 tar 和 dd）来恢复副本。

12. 如果仍无法恢复文件并且数据的值证明了这一点，请使用数据恢复服务。要获取 Oracle StorageTek 磁带介质帮助，请使用 Oracle StorageTek 企业磁带数据恢复服务。登录 My Oracle Support (support.oracle.com)。创建一个服务请求，从请求类别下的列表中选择磁带机型号，然后从子类别下的列表中选择 "Media Issues"（介质问题）。

13. 如果事实证明文件不可恢复，请取消归档受损的副本。使用命令 unarchive -c CopyNumber file，其中 CopyNumber 为一个整数，代表副本编号，而 file 为已损坏文件的路径和文件名。

root@solaris:~# unarchive -c 1 /hsmfs1/genfiles/ab11
root@solaris:~#

14. 解决日志文件中所揭示的任何磁带机或介质问题。

15. 如果在之前的步骤中禁用了归档、回写和回收进程，现在请重新将其启用。转至将归档文件系统恢复为正常操作。

16. 否则，请在此处停止。

6 结束

一旦您已完成配置和数据恢复，应执行最后两项任务：

- 将归档文件系统恢复为正常操作

- 保留新配置信息

将归档文件系统恢复为正常操作

如果您已禁用归档和回收，请立即重新启用这些功能：

- 启用归档

- 启用回收

启用归档

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 在文本编辑器中打开 /etc/opt/SUNWsamfs/archiver.cmd 文件，向下滚动到当您开始恢复工作时添加到该文件中的第一个 wait 指令。
在示例中，使用 vi 编辑器：

root@solaris:~# vi /etc/opt/SUNWsamfs/archiver.cmd
# Configuration file for Oracle HSM archiving file systems
#-----------------------------------------------------------------------
# General Directives
archivemeta = off
examine = noscan
#-----------------------------------------------------------------------
# Archive Set Assignments
wait
fs = hsmfs1
logfile = /var/adm/hsmfs1.archive.log
all .
1 -norelease 15m
2 -norelease 15m
fs = hsmfs2
logfile = /var/adm/hsmfs2.archive.log
all .
...

3. 要启用归档，请删除当您开始恢复工作时添加到该文件中的每个 wait 指令。保存文件并关闭编辑器。
在本示例中，我们删除所添加的单个 wait 指令：

root@solaris:~# vi /etc/opt/SUNWsamfs/archiver.cmd
...
#-----------------------------------------------------------------------
# Archive Set Assignments
fs = hsmfs1
logfile = /var/adm/hsmfs1.archive.log
all .
1 -norelease 15m
2 -norelease 15m
3 -norelease 15m
fs = hsmfs2
...
:wq
root@solaris:~#

4. 接下来，启用回收。

启用回收

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 在文本编辑器中打开 /etc/opt/SUNWsamfs/recycler.cmd 文件，向下滚动到当您开始恢复工作时添加到该文件中的第一个 -ignore 参数。
在示例中，使用 vi 编辑器：

root@solaris:~# vi /etc/opt/SUNWsamfs/recycler.cmd
# Configuration file for Oracle HSM archiving file systems
#-----------------------------------------------------------------------
logfile = /var/adm/recycler.log
no_recycle tp VOL[0-9][2-9][0-9]
library1 -hwm 95 -mingain 60 -ignore

3. 删除当您开始恢复工作时所添加的每个 -ignore 参数。然后保存该文件并关闭编辑器。
在本示例中，我们在 Oracle HSM 配置 library1 中只有一个库：

root@solaris:~# vi /etc/opt/SUNWsamfs/recycler.cmd
# Configuration file for Oracle HSM archiving file systems
#-----------------------------------------------------------------------
logfile = /var/adm/recycler.log
no_recycle tp VOL[0-9][2-9][0-9]
library1 -hwm 95 -mingain 60 -ignore
:wq
root@solaris:~#

4. 在修改后的配置文件中检查错误。使用命令 archiver -lv 检查 archiver.cmd 文件并运行初始化命令 sam-fsd。更正所有错误。
在示例中，配置文件是正确的：

root@solaris:~# archiver -lv
Reading '/etc/opt/SUNWsamfs/archiver.cmd'.
1: #-----------------------------------------------------------------------
2: # General Directives
3: archivemeta = off
4: examine = noscan
5: #-----------------------------------------------------------------------
5: # Archive Set Assignments
7: fs = hsmfs1
...
.sort: path
root@solaris:~# sam-fsd
Trace file controls:
sam-amld      /var/opt/SUNWsamfs/trace/sam-amld
...
Would start sam-archiverd()
Would start sam-stagealld()
Would start sam-stagerd()
Would start sam-amld()
root@solaris:~#

5. 使用恢复的配置文件重新配置 Oracle HSM 软件。使用命令 samd config。
归档和回收进程恢复。

root@solaris:~# samd config

6. 如果要从服务器问题或者一个或多个文件系统丢失或损坏中恢复，请保存新恢复的 Oracle HSM 配置。

7. 否则，请在此处停止。

保留新配置信息

如果您在恢复工作过程中已更改 Oracle HSM 配置，则应立即再次备份该配置。

保存新恢复的 Oracle HSM 配置

1. 以 root 用户身份登录到文件系统元数据服务器。

root@solaris:~#

2. 运行 samexplorer 命令，并创建 SAMreport。将其保存在包含您的备份配置信息的目录中。使用命令 samexplorer path/hostname.YYYYMMDD.hhmmz.tar.gz，其中 path 是所选目录的路径，hostname 是 Oracle HSM 文件系统主机的名称，YYYYMMDD.hhmmz 是日期和时间戳。
默认文件名是 /tmp/SAMreport.hostname.YYYYMMDD.hhmmz.tar.gz。在本示例中，我们已经拥有用于保存 SAMreport 的目录，即 /zfs1/sam_config/。因此我们在此目录中创建相应报告：

root@solaris:~# samexplorer /zfs1/sam_config/explorer/server1.20140430.1659MST.tar.gz
Report name:     /zfs1/sam_config/explorer/samhost1.20140430.1659MST.tar.gz
Lines per file:  1000
Output format:   tar.gz (default) Use -u for unarchived/uncompressed.

Please wait.............................................
Please wait.............................................
Please wait......................................

The following files should now be ftp'ed to your support provider
as ftp type binary.

/zfs1/sam_config/explorer/samhost1.20140430.1659MST.tar.gz

3. 将配置文件复制到其他文件系统。

/etc/opt/SUNWsamfs/
mcf
archiver.cmd
defaults.conf
diskvols.conf
hosts.family-set-name
hosts.family-set-name.local
preview.cmd
recycler.cmd
releaser.cmd
rft.cmd
samfs.cmd
stager.cmd
inquiry.conf
samremote                  # SAM-Remote server configuration file
family-set-name            # SAM-Remote client configuration file
network-attached-library   # Parameters file
scripts/*                  # Back up all locally modified files
/var/opt/SUNWsamfs/

4. 备份所有磁带库目录数据，包括历史记录所维护的数据。对于每个目录，使用命令 /opt/SUNWsamfs/sbin/dump_cat -V catalog-file，其中 catalog-file 是目录文件的路径和名称。将输出重定向到新位置中的 dump-file。
在示例中，我们将 library1 的目录数据转储到文件 library1cat.dump，该文件在独立的已挂载 NFS 的文件系统 zfs1 上的一个目录中：

root@solaris:~# dump_cat -V /var/opt/SUNWsamfs/catalog/library1cat > \
/zfs1/sam_config/20140513/catalogs/library1cat.dump

5. 请复制 Oracle HSM 安装和配置过程中所修改的系统配置文件。其中可能包括：

/etc/
syslog.conf
system
vfstab
/kernel/drv/
sgen.conf
samst.conf
samrd.conf
sd.conf
ssd.conf
st.conf
/usr/kernel/drv/dst.conf

6. 将作为 Oracle HSM 配置的一部分而创建的任何定制 shell 脚本和 crontab 条目复制到选定的子目录中。
例如，如果创建了 crontab 条目来管理恢复点创建，现在就保存其副本。

7. 记录当前安装的软件（包括 Oracle Oracle HSM、Solaris 和 Solaris Cluster（如果适用））的修订级别，并将信息副本保存在所选子目录的 readme 文件中。

8. 在选择的子目录中，保存任何新下载的 Oracle Oracle HSM、Solaris 和 Solaris Cluster 软件包的副本，以便下次需要时可以快速恢复软件。

A 了解归档程序和迁移日志

归档程序和迁移日志记录已复制到磁带的文件的准确位置。如果您需要恢复文件系统，这些日志文件包含相关信息，通过这些信息，您可以恢复使用可用恢复点文件无法找到的所有文件。

下表定义了归档程序日志中的每个字段。

字段

典型值

含义

1

A

记录的归档活动类型：A（已归档）、R（已重新归档）或 U（未归档）

2

2015/03/23

归档操作发生的日期，格式为 yyyy/mm/dd。

3

18:42:06

归档活动发生的时间，格式为 hh:mm:ss。

4

ti

归档介质类型。在附录 B 设备类型词汇表和 mcf(4) 手册页中论述了介质类型。

5

VOL004

可移除介质卷的卷序列号 (volume serial number, VSN) 或卷名以及磁盘介质上归档的文件的 tar(1) 路径。

6

arset0.1

Oracle HSM 归档集名称和副本编号。

7

9a089.132

归档文件（tar 文件）在介质上的起始物理位置和归档文件中的文件偏移量（采用十六进制格式）。

8

hsm1

存放文件的文件系统名称。

9

118.51

文件的 inode 编号和生成号。为了保持唯一性，除了 inode 编号之外，还要使用生成号，因为 inode 编号可以重复使用。

10

162514

在文件仅写入一个卷时，表示文件大小。在文件写入多个卷时，表示文件片段的大小。

11

t0/fdn

相对于文件系统挂载点的文件路径以及名称。

12

f

文件类型：d（目录）、f（文件）、l（符号链接）、R（可移除介质文件）、I（段索引）或 S（数据段）

13

0

溢出文件或段的节编号。如果这个文件是溢出文件，则该值不为零，否则，该值为 0。

14

56

文件归档至的驱动器的设备序号。

以下示例显示了归档程序日志文件中的样例行。

A 2014/03/23 18:42:06 ti VOL004 arset0.1 9a089.1329 hsm1 118.51 162514 t0/fdn f 0 54
A 2014/03/23 18:42:10 ti VOL004 arset0.1 9aac2.1 hsm1 189.53 1515016 t0/fae f 0 56
A 2014/03/23 18:42:10 ti VOL004 arset0.1 9aac2.b92 hsm1 125.53 867101 t0/fai f 0 50
A 2014/03/24 13:30:24 dk DISK01/d8/d16/f2 arset4.1 810d8.1 hsm1 11971.30 1136048 t1/dat0 f 0 0
A 2014/03/24 13:30:25 dk DISK01/d8/d16/f2 arset4.1 810d8.8d hsm1 11973.9 1849474 t1/dat9 f 0 0
A 2014/03/24 13:30:25 dk DISK01/d8/d16/f3 arset4.1 810d8.96 hsm1 119576.6 644930 t1/file7 f 0 0

介质迁移日志与归档日志非常相似。将忽略归档活动以及归档集/副本编号字段，最后三个字段对于迁移日志是唯一的。所有其他字段都相同。但是，请注意，对于迁移的每个卷都有单独的迁移日志。每个日志文件位于 migrationd.cmd 文件指定的日志记录目录中。

字段

典型值

含义

1

2015/03/23

迁移操作发生的日期，格式为 yyyy/mm/dd。

2

18:42:06

迁移活动发生的时间，格式为 hh:mm:ss。

3

ti

归档介质类型。在附录 B 设备类型词汇表和 mcf(4) 手册页中论述了介质类型。

4

VOL004

可移除介质卷的卷序列号 (volume serial number, VSN) 或卷名以及磁盘介质上归档的文件的 tar(1) 路径。

5

9a089.19

归档文件（tar 文件）在介质上的起始物理位置和归档文件中的文件偏移量（采用十六进制格式）。

6

hsm1

存放文件的文件系统名称。

7

118.51

文件的 inode 编号和生成号。为了保持唯一性，除了 inode 编号之外，还要使用生成号，因为 inode 编号可以重复使用。

8

162514

在文件仅写入一个卷时，表示文件大小。在文件写入多个卷时，表示文件片段的大小。

9

dat0/datA

相对于文件系统挂载点的文件路径以及名称。

10

f

文件类型：d（目录）、f（文件）、l（符号链接）、I（段索引）或 S（数据段）

11

s

用于迁移的复制模式：s（服务器副本）或 x (xcopy)。

12

801

挂载了源卷的驱动器的设备序号。

13

804

挂载了目标卷的驱动器的设备序号。

以下示例显示了迁移日志文件 hsm_migration_logs/li.VOL001 中的代表行，该文件记录 LTO 磁带 VOL001 到新介质的迁移：

2015/10/16 12:14:12 li VOL012 2 4.1 hsmfs1 1026.1 0 .domain f s 804 801
2015/10/16 12:14:12 li VOL012 2 4.2 hsmfs1 1025.1 0 .fuid f s 804 801
2015/10/16 12:14:12 li VOL012 2 6.1 hsmfs1 1040.1 14971 data0/dat0A f s 804 801
2015/10/16 12:14:12 li VOL012 2 6.20 hsmfs1 1041.1 14971 data0/dat0B f s 804 801
2015/10/16 12:14:12 li VOL012 2 6.3f hsmfs1 1042.1 14971 data0/dat0C f s 804 801
2015/10/16 12:14:12 li VOL012 2 6.5e hsmfs1 1043.1 14971 data0/dat0D f s 804 801

B 设备类型词汇表

主配置文件 (mcf) 的 Equipment Type 字段的值标识 Oracle Hierarchical Storage Manager and StorageTek QFS Software 内的设备和设备配置。将设备类型指定为两字符代码。此词汇表列出了当使用样例或解释现有 mcf 时用于快速参考的代码（有关完整详细信息，请参见 mcf(4) 手册页）。

为方便起见，将这些代码分为各部分，然后按字母顺序列出：

- 推荐的设备和介质类型

- 其他设备和介质类型

推荐的设备和介质类型

本节介绍了您通常需要的所有设备代码：通用设备代码（rb、tp 和 od）以及用于标识网络连接磁带库接口和 Oracle HSM 历史记录的代码。

通用设备代码 rb、tp 和 od 为所有 SCSI 连接磁带库、磁带机和光盘设备的首选设备类型代码。当您指定通用设备类型时，Oracle HSM 可基于 SCSI 供应商代码自动设置正确的类型。

gXXX

其中 XXX 为 [0-127] 范围内的一个整数，表示属于 ma 磁盘高速缓存系列集的分散读写磁盘设备组。

hy

Oracle HSM 历史记录，是维护介质目录但没有关联硬件的可选虚拟库。用于跟踪导出的介质。

ma

在一个或多个专用 mm 磁盘设备上维护文件系统元数据的高性能 QFS 文件系统。文件数据驻留在单独的 md、mr 或 gXXX 数据设备上。

md

一个磁盘设备，该设备存储 ma 文件系统的文件数据，或 ms 文件系统的数据和元数据。md 设备将文件数据存储在 4 千字节的小型磁盘分配单元 (Disk Allocation Unit, DAU) 中及 16 千字节、32 千字节或 64 千字节的大型 DAU 中。默认 DAU 大小为 64 千字节。

mm

一个磁盘设备，该设备存储高性能 ma 文件系统的文件系统元数据。

mr

一个磁盘设备，该设备存储 ma 文件系统的文件数据。mr 设备将文件数据存储在完全可调整的大型磁盘分配单元 (Disk Allocation Units, DAU) 中，此类磁盘分配单元为 8 千字节的倍数，范围为 8-65528 千字节。默认 DAU 大小是 64 KB。

ms

一个 Oracle HSM 文件系统，该文件系统在存储文件数据的相同设备上维护文件系统元数据。

od

任何 SCSI 连接光盘。Oracle HSM 使用 SCSI 供应商代码自动设置相应的设备类型。

rb

任何 SCSI 连接磁带库。Oracle HSM 使用 SCSI 供应商代码自动设置相应的设备类型。

rd

SAM-Remote 伪设备。在主配置文件 (mcf) 中，对应的 Equipment Identifier（设备标识符）字段必须包含伪设备的路径（例如 /dev/samrd/rd2）。对应的 Family Set（系列集）字段必须包含 SAM-Remote 服务器的主机名。

sc

SAM-Remote 客户机系统。在主配置文件 (mcf) 中，对应的 Equipment Identifier（设备标识符）字段必须包含客户机的 SAM-Remote 客户机配置文件的路径。对应的 Family Set（系列集）字段必须包含服务器的系列集名称。Additional Parameters（其他参数）字段必须包含客户机库目录文件的完整路径。

sk

指向网络连接磁带库的 Oracle StorageTek ACSLS 接口。在主配置文件 (mcf) 中，对应的 Equipment Identifier（设备标识符）字段必须包含 ACSLS 接口的参数文件的路径。有关更多信息，请参见 stk(7) 手册页。

ss

SAM-Remote 服务器。在主配置文件 (mcf) 中，对应的 Equipment Identifier（设备标识符）字段必须包含 SAM-Remote 服务器配置文件的路径。对应的 Family Set（系列集）字段必须包含服务器的系列集名称，该名称必须与客户机上 mcf 的 Family Set（系列集）字段中使用的名称一致。

tp

任何 SCSI 连接磁带机。Oracle HSM 使用 SCSI 供应商代码自动设置相应的设备类型。但是，请注意，如果您使用更具体的设备代码（例如 li 和 ti），您必须执行相应的操作。例如，如果在 mcf 文件中指定 li (LTO) 磁带设备，则不能在 archiver.cmd 文件中将同一设备称作 tp 设备。

其他设备和介质类型

还支持本节中列出的设备类型。

请注意，在大多数情况下，Oracle 建议使用通用设备类型 rb、tp 和 od 标识 SCSI 连接的磁带库、磁带机和光盘设备。通用设备类型告知 Oracle HSM 使用 SCSI 供应商 ID 动态确定硬件。从一种介质类型迁移到另一种介质类型时，下面的类型代码非常重要；这些代码有时还可用于满足管理需要。但是例如，在主配置文件 (mcf) 中使用这些代码会以硬编码方式写入可能与实际硬件不匹配的静态设备配置（不建议这么做）。

ac

Sun 1800、3500 或 L11000 磁带库。

at

Sony AIT-4 或 AIT-5 磁带机。

cy

Cygnet 光盘库。

d3

StorageTek D3 磁带机。

dm

Sony DMF 磁带库。

ds

DocuStore 或 Plasmon 光盘库。

dt

DAT 4 毫米磁带机。

e8

Exabyte X80 库。

fd

Fujitsu M8100 128 磁轨磁带机。

h4

HP SL48 或 SL24 磁带库。

hc

Hewlett Packard L9-/L20-/L60 系列磁带库。

i7

IBM 3570 磁带机。

ic

IBM 3570 介质转换器。

il

IBM 3584 磁带库。

li

LTO-3 或更高版本的磁带机。

lt

数字线性磁带 (Digital Linear Tape, DLT)、Super DLT 或 DLT-S4 磁带机。

me

Metrum 磁带库。

mf

IBM 多功能光盘驱动器。

mo

5.25 英寸可擦光盘驱动器。

o2

12 英寸 WORM 驱动器。

ov

Overland Data Inc. Neo 系列磁带库。

pd

Plasmon D 系列 DVD-RAM 库。

q8

Qualstar 42xx、62xx 或 82xx 磁带库。

s3

StorageTek SL3000 磁带库。

s9

Oracle StorageTek 97xx 系列磁带库。

se

StorageTek 9490 磁带机。

sf

StorageTek T9940 磁带机。

sg

StorageTek 9840C 或更高版本的磁带机。

sl

Spectra Logic 或 Qualstar 磁带库。

st

StorageTek 3480 磁带机。

ti

StorageTek T10000 (Titanium) 磁带机。

vt

Metrum VHS (RSP-2150) 磁带机。

wo

5.25 英寸 WORM 光盘驱动器。

xt

Exabyte (850x) 8 毫米磁带机。

C 产品辅助功能

弱视、失明、色盲或其他视力障碍的用户可通过命令行界面访问 Oracle Hierarchical Storage Manager and StorageTek QFS Software (Oracle HSM)。此基于文本的界面与屏幕阅读器兼容，且可以使用键盘控制所有功能。

词汇表

该词汇表重点描述特定于 Oracle HSM 软件和文件系统的术语。有关行业标准定义，请参阅由全球网络存储工业协会 (Storage Networking Industry Association, SNIA) 维护的词典，网址为：http://www.snia.org/education/dictionary/。

addressable storage（可寻址存储）

包括在线、近线、异地和离线存储在内的存储空间，用户可通过 Oracle HSM 文件系统进行引用。

admin set ID（管理集 ID）

由存储管理员定义、拥有共同特征的用户和/或组的集合。创建管理集的目的通常在于，对涉及到来自多个组的用户以及跨多个文件和目录的项目存储进行管理。

archival media（归档介质）

写入归档文件的目标介质。归档介质同时包括可移除磁带或磁光磁带，以及配置用于归档的磁盘文件系统。

archival storage（归档存储）

在归档介质上创建的数据存储空间。

archive set（归档集）

归档集标识要归档的一组文件，这些文件在大小、所有权、组或目录位置方面满足相同的条件。归档集可以跨任何文件系统组进行定义。

archiver（归档程序）

一种可以自动将文件复制到可移除磁带的归档程序。

associative staging（关联回写）

当对组的任一成员进行回写时回写一组相关文件。当多个文件位于同一目录并经常一起使用时，文件所有者可通过设置 Oracle HSM 关联回写文件属性来关联这些文件。这样，如果在组中的一个文件被某个应用程序访问时其中的任何文件脱机，则 Oracle HSM 会将整个组从归档介质回写到磁盘高速缓存中。这样可确保所有必要的文件同时重新可用。

audit (full)（完全审计）

装入磁带以验证其 VSN 的过程。对于磁光磁带，会确定容量和空间信息，并将这些信息输入到自动化库的目录中。请参见 volume serial number (VSN)（卷序列号）。

automated library（自动化库）

一款自动控制的设备，用于在无操作员参与的情况下，自动装入和卸载可移除介质磁带。自动化库包含两个部分：一个或多个驱动器，以及将磁带移入和移出存储插槽和驱动器的传输装置。

backup（备份）

用于防止意外丢失的文件集合的快照。一个备份同时包括文件的属性和关联数据。

block allocation map（块分配图）

一个显示磁盘中所有可用存储块的位图，它指出了每个块的状态为在使用中还是未使用。

block size（块大小）

块设备（如硬盘或盒式磁带）上最小的可寻址数据单位的大小。在磁盘设备上，这相当于扇区大小，通常为 512 字节。

cartridge（盒式磁带）

一种数据存储介质容器，如磁带或光学介质。有时也称为 volume（卷）、磁带或介质。请参见 volume serial number (VSN)（卷序列号）。

catalog（目录）

自动化库中可移除介质卷的记录。每个自动化库均有一个目录，且一个站点拥有一个有关所有自动化库的历史记录。使用 volume serial number (VSN)（卷序列号）对卷进行标识和跟踪。

client-server（客户机/服务器）

分布式系统中的交互模式，在此模式下，一个站点上的程序向另一站点上的程序发送请求并等待响应。发送请求的程序称为客户机。提供响应的程序称为服务器。

connection（连接）

两个协议模块之间的通道，用于提供可靠的流传输服务。TCP 连接可从一台计算机上的 TCP 模块扩展至另一台计算机上的 TCP 模块。

data device（数据设备）

文件系统中，用于存储文件数据的设备或设备组。

DAU

请参见 disk allocation unit (DAU)（磁盘分配单元）。

device logging（设备日志记录）

一种可配置功能，该功能可提供支持 Oracle HSM 文件系统的硬件设备的具体错误信息。

device scanner（设备扫描程序）

一种软件，该软件可定期监视所有手动挂载的可移除设备是否存在，并检测可由用户或其他进程请求的已挂载磁带是否存在。

direct access（直接访问）

一种文件属性（永远不必回写），表示可直接从归档介质中访问近线文件，而不需要将近线文件检索到磁盘高速缓存。

direct attached library（直接连接式库）

一种自动化库，该库使用 SCSI 接口直接连接至服务器。SCSI 连接库直接受 Oracle HSM 软件控制。

direct I/O（直接 I/O）

用于大型块对齐的连续 I/O 的属性。setfa 命令的 -D 选项为直接 I/O 选项。它可为文件或目录设置直接 I/O 属性。如果将直接 I/O 属性应用于目录，则可继承直接 I/O 属性。

directory（目录）

文件数据结构，该结构指向文件系统内的其他文件和目录。

disk allocation unit (DAU)（磁盘分配单元）

在 Oracle HSM 文件系统中，每个 I/O 操作所占据的最少量连续空间（无论写入的数据量是多少）。因而磁盘分配单元可确定当传输给定大小的文件时所需的 I/O 操作最少数量。它应该是磁盘设备的 block size（块大小）的倍数。

磁盘分配单元会有所不同，具体取决于选定的 Oracle HSM 设备类型和用户要求。md 设备类型使用双分配单元：前八次文件写入的 DAU 是 4 KB，后续写入是用户指定的值 16、32 或 64 KB，因此小文件将以合适的小块写入，较大的文件以较大的块写入。mr 和 striped group（分散读写组）设备类型使用可调整的 DAU，范围在 [8-65528] KB 内，增量为 8 KB。因而文件中写入了大小统一的大块，这些大块的大小与统一的大文件的大小十分近似。

disk buffer（磁盘缓冲区）

在 SAM-Remote 配置中，用于将数据从客户机归档到服务器的服务器系统上的缓冲区。

disk cache（磁盘高速缓存）

文件系统软件的磁盘驻留部分，用于在联机磁盘高速缓存和归档介质之间创建和管理数据文件。单个磁盘分区或整个磁盘可用作磁盘高速缓存。

disk space threshold（磁盘空间阈值）

由管理员定义的磁盘高速缓存利用率的最大或最小级别。释放程序基于这些预定义的磁盘空间阈值来控制磁盘高速缓存利用率。

disk striping（磁盘分散读写）

跨几个磁盘记录一个文件的过程，从而可改善访问性能并提高总体存储容量。另请参见 striping（分散读写）。

drive（磁带机）

一种从可移除介质卷中传输数据或向可移除介质卷中传输数据的机制。

Ethernet（以太网）

一种包交换局域网技术。

extent array（范围阵列）

文件的 inode 内的阵列，用于定义分配给文件的每个数据块在磁盘上的位置。

family device set（设备系列集）

请参见 family set（系列集）。

family set（系列集）

独立物理设备的逻辑分组，如自动化库中的磁盘或驱动器集合。另请参见 storage family set（存储系列集）。

FDDI

fiber-distributed data interface（光纤分布式数据接口）的缩写，为局域网中数据传输标准，最高可扩展至 200 公里（124 英里）。FDDI 协议基于令牌环协议。

Fibre Channel（光纤通道）

由 ANSI 提出的标准，该标准规定在不同设备之间实行高速串行通信。光纤通道是在 SCSI-3 中使用的其中一个总线体系结构。

file system（文件系统）

一种由文件和目录组成的分层集合。

file-system-specific directives（特定于文件系统的指令）

归档程序和释放程序指令（位于 archiver.cmd 文件中的全局指令之后），这些指令专用于特定文件系统，以 fs = 开头。特定于文件系统的指令的应用范围到出现下一个 fs = 指令行或文件末尾结束。如果多个指令影响到一个文件系统，则特定于文件系统的指令会覆盖全局指令。

ftp

File Transfer Protocol（文件传输协议）的缩写，用于在两台主机之间传输文件的网络协议。有关更安全的备选方法，请参见 sftp。

global directives（全局指令）

归档程序和释放程序指令，这些指令应用于所有文件系统，位于首个 fs= 行之前。

grace period（宽限期）

对于 quota（配额）而言，是指文件系统允许属于指定用户、组和/或 admin set ID（管理集 ID）的文件大小总量超出配额中指定的 soft limit（软限制）的时间期限。

hard limit（硬限制）

对于 quota（配额）而言，是指定用户、组和/或 admin set ID（管理集 ID）可使用的存储资源的绝对最大数量。请参见 soft limit（软限制）。

high-water mark（高水位线）

1. 归档文件系统中磁盘高速缓存利用率百分比，达到此百分比时，Oracle HSM 文件系统启动释放程序进程，并从磁盘中删除以前归档的文件。正确配置的高水位标志可确保文件系统始终拥有足够的可用空间用于新文件和新回写的文件。有关更多信息，请参见 sam-releaser 和 mount_samfs 手册页。与 low-water mark（低水位标志）相对。

2. 在包含在归档文件系统中的可移除介质库中，可启动回收程序流程的介质高速缓存利用率百分比。回收可部分清空当前数据的整卷，以便它们可由新介质进行替换或对它们重新设置标签。

historian（历史记录）

Oracle HSM 历史记录是卷的目录，已将这些卷从在 /etc/opt/SUNWsamfs/mcf 文件中定义的自动化介质库中导出。默认情况下，历史记录位于 /var/opt/SUNWsamfs/catalog/historian 中的 Oracle HSM 文件系统主机上。有关详细信息，请参见 Oracle HSM 历史记录手册页。

hosts file（hosts 文件）

hosts 文件包含共享文件系统中所有主机的列表。如果您要将某个文件系统初始化为 Oracle HSM 共享文件系统，则必须在创建该文件系统之前创建 hosts 文件 /etc/opt/SUNWsamfs/hosts.fs-name。sammkfs 命令会在创建文件系统时使用该 hosts 文件。以后，您可以使用 samsharefs 命令替换或更新 hosts 文件的内容。

indirect block（间接块）

包含存储块列表的磁盘块。文件系统最多可拥有三级间接块。第一级间接块包含用于数据存储的块列表。第二级间接块包含第一级间接块的列表。第三级间接块包含第二级间接块的列表。

inode（索引节点）

index node（索引节点）的缩写。文件系统用来描述文件的数据结构。inode 描述与文件关联的所有属性（名称属性除外）。这些属性包括所有权、访问权、权限、大小和文件在磁盘系统中的位置。

inode file（inode 文件）

文件系统上的特殊文件 (.inodes)，其中包含驻留在文件系统中的所有文件的 inode 结构。inode 的长度为 512 字节。inode 文件是一个元数据文件，它不同于文件系统中的其它文件数据。

kernel（内核）

提供基本操作系统工具的程序。UNIX 内核可以创建和管理进程、提供访问文件系统的功能、提供基本安全性能，以及提供通信工具。

LAN

local area network（局域网）的缩写。

lease（租约）

一种功能，用于向客户机主机授予权限，使其可在指定期限内对文件执行操作。元数据服务器向每一个客户机主机发放租约。根据需要，可对租约进行续借以允许客户机主机继续进行文件操作。

library（磁带库）

请参见 automated library（自动化库）。

library catalog（库目录）

请参见 catalog（目录）。

local file system（本地文件系统）

安装在 Solaris Cluster 系统的一个节点上的文件系统，该文件系统不太可用于其他节点。同时也指安装在服务器上的文件系统。

low-water mark（低水位标志）

归档文件系统中磁盘高速缓存利用率百分比，达到此百分比时，Oracle HSM 文件系统停止释放程序进程，并停止从磁盘中删除以前归档的文件。正确配置的下限可确保文件系统在高速缓存中尽可能保留文件，以实现最佳性能，同时为新文件和新回写的文件提供可用空间。有关更多信息，请参见 sam-releaser 和 mount_samfs 手册页。与 high-water mark（高水位线）相对。

LUN

Logical unit number（逻辑单元号）。

mcf

Master Configuration File（主配置文件）。在初始化时读取的文件，定义文件系统环境中设备之间的关系（拓扑）。

media（介质）

磁带或光盘磁带。

media recycling（介质回收）

回收或重新使用包含很少活动文件的归档介质的过程。

metadata（元数据）

与数据有关的数据。元数据是指用于在磁盘上查找某个文件的具体数据位置的索引信息。它由以下各项的相关信息组成：文件、目录、访问控制列表、符号链接、可移除介质、分段文件和分段文件索引。

metadata device（元数据设备）

用于存储文件系统元数据的设备（例如固态磁盘或镜像设备）。将文件数据和元数据存放在不同的设备上可以提高性能。在 mcf 文件中，元数据设备被声明为 ma 文件系统中的 mm 设备。

mirror writing（镜像写入）

在互不相连的磁盘组中保存两份文件副本的过程，用于防止因单个磁盘故障而导致数据丢失。

mount point（挂载点）

挂载文件系统的目录。

multireader file system（多读取器文件系统）

一种单写入器、多读取器功能，该功能使您能够指定可在多个主机上挂载的文件系统。多个主机可以读取该文件系统，但只有一个主机可以写入该文件系统。使用 mount 命令中的 -o reader 选项指定多个读取器。使用 mount 命令中的 -o writer 选项指定单写入器主机。有关更多信息，请参见 mount_samfs 手册页。

name space（名称空间）

文件集合的元数据部分，用于标识文件、文件属性及其存储位置。

nearline storage（近线存储）

一种可移除介质存储，在访问该存储前，需要启用自动挂载功能。近线存储通常要比在线存储的成本低，但访问时间稍长。

network attached automated library（网络连接自动化库）

一种库（例如，来自 StorageTek、ADIC/Grau、IBM 或 Sony 的库），该库使用由供应商提供的软件包进行控制。QFS 文件系统使用专门针对自动化库设计的 Oracle HSM 介质转换器守护进程与供应商软件进行交互。

NFS

network file system（网络文件系统）的缩写，该文件系统可对异构网络上远程文件系统进行透明访问。

NIS

Network Information Service（网络信息服务）的缩写，一种分布式网络数据库，包含有关网络上系统和用户的关键信息。NIS 数据库存储于主服务器和所有从属服务器中。

offline storage（离线存储）

需要操作员参与装载的存储。

offsite storage（异地存储）

远离服务器并用于灾难恢复的存储。

online storage（在线存储）

直接可用的存储，例如磁盘高速缓存存储。

Oracle HSM

1. Oracle Hierarchical Storage Manager 的常用缩写。

2. 形容词，用于描述为归档配置并由 Oracle HSM 软件管理的 QFS 文件系统。

partition（分区）

设备的一部分或者磁光磁带的一面。

preallocation（预分配）

在磁盘高速缓存上预留连续的空间量用于写入文件的过程。只能为大小为零的文件指定预分配。有关更多信息，请参见 setfa 手册页。

pseudo device（伪设备）

未关联任何硬件的软件子系统或驱动程序。

QFS

Oracle HSM QFS 软件产品，是一种高性能、高容量 UNIX 文件系统，可独立使用，也可用作由 Oracle Hierarchical Storage Manager 控制的归档文件系统。

qfsdump

请参见 samfsdump (qfsdump)。

qfsrestore

请参见 samfsrestore (qfsrestore)。

quota（配额）

允许指定用户、组或 admin set ID（管理集 ID）使用的存储资源量。请参见 hard limit（硬限制）和 soft limit（软限制）。

RAID

redundant array of independent disks（独立磁盘的冗余阵列）的缩写。一种使用若干独立磁盘来可靠存储文件的磁盘技术。它可以防止单个磁盘出现故障时发生数据丢失，可提供容错磁盘环境，以及提供比单个磁盘更高的吞吐量。

recovery point（恢复点）

一种压缩文件，可存储 Oracle HSM 文件系统元数据的即时备份副本。

一旦发生数据丢失（包括从意外删除用户文件到灾难性丢失整个文件系统在内的任何数据丢失情况），通过以下方法，管理员几乎可以立即恢复至文件或文件系统的上个已知良好状态：找到文件或文件系统未受影响的上一个恢复点。然后，管理员可恢复在该时间点记录的元数据，并将元数据中指示的文件从归档介质回写到磁盘高速缓存中，或者（更适合）让文件系统按需回写文件，以供用户和应用程序访问这些文件。

recycler（回收程序）

一种 Oracle HSM 实用程序，用于回收由过期归档副本占用的磁带空间。

regular expression（正则表达式）

标准化模式匹配语言中的一个字符串，设计用于搜索、选择和编辑其他字符串，如文件名和配置文件。有关用于 Oracle HSM 文件系统操作的正则表达式语法的完整详细信息，请参见 Oracle HSM Solaris regex 和 regcmp 手册页。

release priority（释放优先级）

一种优先级方法，文件系统中的文件在归档后按照该优先级进行释放。释放优先级的计算方法是通过各种加权数乘以相应的文件属性，然后得出各个结果之和。

releaser（释放程序）

一个 Oracle HSM 组件，用于识别已归档的文件并释放它们的磁盘高速缓存副本，从而腾出更多可用的磁盘高速缓存空间。释放程序可以根据阈值上限和阈值下限自动调整联机磁盘存储量。

remote procedure call（远程过程调用）

请参见 RPC。

removable media file（可移除介质文件）

一种特殊类型的用户文件，可以直接从它所在的可移除介质磁带（如磁带或光盘磁带）中进行访问。也可用于写入归档和回写文件数据。

robot（机械手）

一个 automated library（自动化库）组件，用于在存储插槽和驱动器之间移动磁带。也称为 transport（传输）。

round-robin（循环）

一种按顺序将全体文件写入到多个逻辑磁盘的数据访问方法。将单个文件写入磁盘时，此文件的全部内容都将写入第一个逻辑磁盘。第二个文件将写入下一个逻辑磁盘，依次类推。每个文件的大小决定 I/O 的大小。另请参见 disk striping（磁盘分散读写）和 striping（分散读写）。

RPC

Remote procedure call（远程过程调用）。NFS 用以实施定制网络数据服务器的底层数据交换机制。

SAM

Storage Archive Manager（Oracle Hierarchical Storage Manager 产品的旧名称）的常用缩写。

SAM-Remote client（SAM-Remote 客户机）

具有客户机守护进程的 Oracle HSM 系统，其中包含许多伪设备，并且还可以具有自己的库设备。客户机用来存储一个或多个归档副本的归档介质由 SAM-Remote 服务器决定。

SAM-Remote server（SAM-Remote 服务器）

SAM-Remote 服务器不仅是功能完备的 Oracle HSM 存储管理服务器，而且还是用于定义各个 SAM-Remote 客户机所共享库的 SAM-Remote 服务器守护进程。

SAM-QFS

1. Oracle Hierarchical Storage Manager 产品的旧版本的常用缩写。

2. 形容词，用于描述为归档配置并由 Oracle HSM 软件管理的 QFS 文件系统。

samfsdump (qfsdump)

一个程序，用于为给定的文件组创建控制结构转储并复制所有控制结构信息。它通常不复制文件数据。使用 -U 选项时，该命令还会复制数据文件。如果未安装 Oracle Hierarchical Storage Manager 软件包，则该命令称为 qfsdump。

samfsrestore (qfsrestore)

一个程序，用于从控制结构转储中恢复 inode 和目录信息。另请参见 samfsdump (qfsdump)。

SAN

Storage Area Network（存储区域网络）。

SCSI

Small Computer System Interface（小型计算机系统接口），一个通常用于外围设备（例如磁盘和磁带机以及自动化库）的电子通信规范。

seeking（寻道）

在随机访问 I/O 操作过程中，将磁盘设备的读/写头从一个磁盘位置移动到另一个磁盘位置。

shared hosts file（共享 hosts 文件）

当您创建共享文件系统时，系统会将信息从 hosts 文件复制到元数据服务器上的共享 hosts 文件中。当您发出 samsharefs -u 命令时更新此信息

Small Computer System Interface（小型计算机系统接口）

请参见 SCSI。

soft limit（软限制）

对于 quota（配额）而言，是指所指定用户、组和/或 admin set ID（管理集 ID）可无限期填充的最大存储空间量。文件可使用超出软限制所允许的空间量，最多可达到硬限制，但是仅限于配额中定义的短 grace period（宽限期）。请参见 hard limit（硬限制）。

sftp

Secure File Transfer Protocol（安全文件传输协议）的缩写，一种基于 ftp 的 ssh 安全实现。

ssh

Secure Shell（安全 Shell）的缩写，一种可实现安全、远程命令行登录和命令执行的加密网络协议。

staging（回写）

将近线或离线文件从归档存储复制回在线存储的过程。

Storage Archive Manager

Oracle Hierarchical Storage Manager 产品的旧名称。

storage family set（存储系列集）

统一表示为单个逻辑设备的磁盘集。

storage slots（存储插槽）

当磁带未在驱动器中使用时在自动化库中的存储位置。

stripe size（分散读写大小）

移至分散读写的下一个设备之前要分配的磁盘分配单元 (disk allocation unit, DAU) 的数量。如果使用 stripe=0 挂载选项，则文件系统将采用循环访问方式，而不采用分散读写访问方式。

striped group（分散读写组）

文件系统中的设备集合；在 mcf 文件中，它被定义成一个或多个 gXXX 设备。分散读写组作为一个逻辑设备使用，并且始终分散读写成大小等于磁盘分配单元 (disk allocation unit, DAU) 的空间。

striping（分散读写）

一种以交错方式将文件同时写入到多个逻辑磁盘的数据访问方法。Oracle HSM 文件系统提供两种类型的分散读写：“硬分散读写”，该类型使用分散读写组；以及“软分散读写”，该类型使用 stripe=x 挂载参数。硬分散读写在设置文件系统时启用，需要在 mcf 文件内定义分散读写组。软分散读写通过 stripe=x 挂载参数启用，可针对文件系统或单个文件进行更改。它是通过设置 stripe=0 来禁用的。如果文件系统由包含相同数量元素的多个分散读写组构成，则可同时使用硬分散读写和软分散读写。另请参见 round-robin（循环）。

SUNW.qfs

支持 Oracle HSM 共享文件系统的一种 Solaris Cluster 资源类型。SUNW.qfs 资源类型可定义共享文件系统的元数据服务器 (metadata server, MDS) 的故障转移资源

superblock（超级块）

文件系统中的一种数据结构，可定义文件系统的基本参数。超级块写入到存储系列集中的所有分区，并可标识该集中分区的成员身份。

tar

tape archive（磁带归档）的缩写。它是用来存储归档映像的标准文件和数据记录格式。

TCP/IP

Transmission Control Protocol/Internet Protocol（传输控制协议/Internet 协议）的缩写。Internet 协议负责主机之间的寻址和路由以及包传送 (IP)，在各个应用点之间可靠地传递数据 (TCP)。

timer（计时器）

一种配额软件，用于跟踪用户已在为其设定的软限制和硬限制之间经历的时间。

transport（传输）

请参见 robot（机械手）。

vfstab file（vfstab 文件）

vfstab 文件包含文件系统的挂载选项。在命令行上指定的挂载选项会覆盖 /etc/vfstab 文件中指定的挂载选项，但是 /etc/vfstab 文件中指定的挂载选项会覆盖 samfs.cmd 文件中指定的挂载选项。

volume（卷）

1. 存储介质中的单个可访问的逻辑存储区域，通常通过 volume serial number (VSN)（卷序列号）和/或卷标签来寻址。存储磁盘和盒式磁带可容纳一个或多个卷。为了便于使用，会将卷挂载在指定 mount point（挂载点）中的某个文件系统上。

2. 容纳单个逻辑卷的磁带 cartridge（盒式磁带）。

3. 在随机访问磁盘设备上，被当做顺序访问且可移除介质磁带（如磁带）而配置和使用的文件系统、目录或文件。

volume overflow（卷溢出）

一种允许系统在多个 volume（卷）上存储单个文件的功能。对于使用大容量文件（超过单个磁带的容量）的站点，卷溢出功能非常有用。

volume serial number (VSN)（卷序列号）

1. 分配给磁带或磁盘存储卷的序列号。一个卷序列号最多可包含六个大写的字母数字字符，必须以字母开头，并且必须在给定上下文（例如磁带库或分区）中唯一标识卷。卷序列号写入到卷标签上。

2. 不严格地讲，是指特定存储 volume（卷），尤其是可移除介质 cartridge（盒式磁带）。

WORM

Write-Once-Read-Many（一次写入多次读取）。介质的一种存储类别，只能写入一次但可以多次读取。

Oracle 法律声明

版权声明

版权所有 (C) 1994-2016，Oracle 和/或其附属公司。保留所有权利。

许可证限制担保/间接损害免责声明

本软件和相关文档是根据许可证协议提供的，该许可证协议中规定了关于使用和公开本软件和相关文档的各种限制，并受知识产权法的保护。除非在许可证协议中明确许可或适用法律明确授权，否则不得以任何形式、任何方式使用、拷贝、复制、翻译、广播、修改、授权、传播、分发、展示、执行、发布或显示本软件和相关文档的任何部分。除非法律要求实现互操作，否则严禁对本软件进行逆向工程设计、反汇编或反编译。

担保免责声明

此文档所含信息可能随时被修改，恕不另行通知，我们不保证该信息没有错误。如果贵方发现任何问题，请书面通知我们。

有限权利声明

如果将本软件或相关文档交付给美国政府，或者交付给以美国政府名义获得许可证的任何机构，则适用以下注意事项：

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危险应用领域声明

本软件或硬件是为了在各种信息管理应用领域内的一般使用而开发的。它不应被应用于任何存在危险或潜在危险的应用领域，也不是为此而开发的，其中包括可能会产生人身伤害的应用领域。如果在危险应用领域内使用本软件或硬件，贵方应负责采取所有适当的防范措施，包括备份、冗余和其它确保安全使用本软件或硬件的措施。对于因在危险应用领域内使用本软件或硬件所造成的一切损失或损害，Oracle Corporation 及其附属公司概不负责。

商标声明

Oracle 和 Java 是 Oracle 和/或其附属公司的注册商标。其他名称可能是各自所有者的商标。

Intel 和 Intel Xeon 是 Intel Corporation 的商标或注册商标。所有 SPARC 商标均是 SPARC International, Inc 的商标或注册商标，并应按照许可证的规定使用。AMD、Opteron、AMD 徽标以及 AMD Opteron 徽标是 Advanced Micro Devices 的商标或注册商标。UNIX 是 The Open Group 的注册商标。

第三方内容、产品和服务免责声明

本软件或硬件以及文档可能提供了访问第三方内容、产品和服务的方式或有关这些内容、产品和服务的信息。除非您与 Oracle 签订的相应协议另行规定，否则对于第三方内容、产品和服务，Oracle Corporation 及其附属公司明确表示不承担任何种类的保证，亦不对其承担任何责任。除非您和 Oracle 签订的相应协议另行规定，否则对于因访问或使用第三方内容、产品或服务所造成的任何损失、成本或损害，Oracle Corporation 及其附属公司概不负责。

Alpha 和 Beta 版草稿文档声明

本文档属于前期制作文档：

本文档属于前期制作文档，仅供演示和预备之用。本文档可能不是针对贵方正运行软件的硬件撰写的。Oracle Corporation 及其附属公司对预发布文档不做任何担保，且对因使用该文档所导致的任何损失、费用或损害概不负责。

Alpha 和 Beta 版草稿文档声明

本文档属于前期制作文档：

本文档中所包含的信息仅供参考之用，仅限于客户咨询委员会成员参考或依据 beta 试用版协议的用户参考。该信息不承诺提供任何资料、代码或功能，并且不应该作为制定购买决策的依据。本文档所述的任何特性或功能的开发、发行和时间规划均由 Oracle 自行决定。

本文档的任何形式（软件或印刷品）均包含 Oracle 独家所有的专有信息。您对本机密材料的访问和使用，受已生效且您同意遵守的 Oracle 主协议、Oracle 许可及服务协议书、Oracle合作伙伴网络协议、Oracle 分销协议或其他许可证协议的条款和条件制约。未经 Oracle 事先书面许可，不得向 Oracle 之外的任何人披露、拷贝、复制或分发本文档及本文档所包含的信息。本文档既不属于您许可证协议的一部分，也不会纳入任何与 Oracle 及其子公司或附属公司的合同协议之中。

文档可访问性

有关 Oracle 对可访问性的承诺，请访问 Oracle Accessibility Program 网站 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc。

获得 Oracle 支持

购买了支持服务的 Oracle 客户可通过 My Oracle Support 获得电子支持。有关信息，请访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info；如果您听力受损，请访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs。