无论您面临的是从重大文件系统故障中进行恢复还是潜在的数据丢失,第一步均应是稳定受影响的系统、最大程度地减少进一步丢失的几率,以及尽可能保留诊断信息。本章概述您需要执行的操作:
当您必须恢复归档文件系统或大量丢失的文件时,应首先停止文件系统的归档和回收过程。在评估状况并将一切恢复到正常状态(在理想情况下)之前,您要稳定和隔离归档。否则,正在进行的归档和回收操作有时可能会使情况更糟糕。归档和回写过程可能会传播损坏的文件。回收过程可能会删除有效数据的仅有剩余副本。
因此,请尽可能采取下列预防措施:
完成恢复操作后,您可以取消以下更改并恢复正常的文件系统行为。
以 root
用户身份登录到文件系统元数据服务器。
root@solaris:~#
在文本编辑器中打开 /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 . ...
如果需要停止所有文件系统上的归档,则在 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:~#
如果仅需要停止一个文件系统上的归档,则在该文件系统的 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:~#
接下来,停止回收。
以 root
用户身份登录到文件系统元数据服务器。
root@solaris:~#
请使用文本编辑器打开 /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
将 -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:~#
如果要从一个或多个归档文件系统丢失或损坏中恢复,请备份未归档文件后再继续。
如果要从服务器问题或者文件系统丢失或损坏中恢复,请保存 Oracle HSM 配置后再继续。
如果您需要恢复目录和文件,请确定您是需要保存 Oracle HSM 配置,还是直接转至第 5 章 恢复丢失和已损坏的文件。
未归档文件可能留在损坏的归档文件系统的磁盘高速缓存中。归档中不存在这些文件的副本。因此,如果可以,请立即将其备份至恢复点文件。执行如下操作:
以 root
用户身份登录到文件系统元数据服务器。
root@solaris:~#
为恢复点选择安全存储位置。
在本示例中,在初始配置期间为恢复点创建的目录之下创建一个子目录 unarchived/
。/zfs
文件系统与 /hsmfs1
(我们要恢复的文件系统)没有共同的设备:
root@solaris:~# mkdir /zfs1/hsmfs_recovery/unarchived/ root@solaris:~#
转到文件系统的根目录。
在本示例中,转到挂载点目录 /hsmfs1
:
root@solaris:~# cd /hsmfs1 root@solaris:~#
备份留在磁盘高速缓存中的所有未归档文件。使用命令 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:~#
如果要从服务器问题或者文件系统丢失或损坏中恢复,请保存 Oracle HSM 配置后再继续。
如果您需要恢复目录和文件,请确定您是需要保存 Oracle HSM 配置,还是直接转至第 5 章 恢复丢失和已损坏的文件。
即使您已安全存储用于恢复 Oracle HSM 软件和文件系统所需的全部配置文件和脚本的备份副本,保留故障系统的当前状态(如果可以)也将很有意义。留存下来的配置文件和脚本可能包含自上次完整配置备份以来所实现的更改。这可能意味着将系统恢复到接近其故障前的精确状态和仅关闭之间的差异。日志和跟踪文件包含的信息有助于恢复文件并明确故障的原因。因此,在您进行其他任何操作之前,首先应保留任何剩余内容。
如有可能,请以 root
用户身份登录到文件系统元数据服务器。
root@solaris:~#
运行 samexplorer
命令,创建 SAMreport,并将该报告保存在包含您的备份配置信息的目录中。使用命令 samexplorer
path
/
hostname
.
YYYY
MM
DD
.
hh
mm
z
.
tar.gz
,其中 path
是所选目录的路径,hostname
是 Oracle HSM 文件系统主机的名称,YYYY
MM
DD
.
hh
mm
z
是日期和时间戳。
默认文件名是 /tmp/SAMreport.
hostname
.
YYYY
MM
DD
.
hh
mm
z
.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
将尽可能多的 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/
备份所有留存下来的库目录,包括历史记录目录。对于每个目录,使用命令 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
将在 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
将作为 Oracle HSM 配置的一部分而创建的任何定制 shell 脚本和 crontab
条目复制到独立文件系统中。
例如,如果创建了 crontab
条目来管理恢复点创建,现在就保存其副本。
创建用于记录当前安装的软件修订版级别的 readme
文件。包含 Oracle Oracle HSM、Solaris 和 Solaris Cluster(如果适用)。将该文件与其他恢复信息一起保存在独立文件系统中。
如果可能,将下载的 Oracle Oracle HSM、Solaris 和 Solaris Cluster 软件包的副本保存在独立文件系统中。
如果这些软件包已经可用,则可以在必要时快速恢复软件。
如果您要从丢失的 Oracle HSM 服务器主机中恢复,请转至第 3 章 恢复 Oracle HSM 配置。
如果您需要恢复一个或多个 Oracle HSM 文件系统,请转至第 4 章 恢复文件系统。
如果您需要恢复目录和文件,请转至第 5 章 恢复丢失和已损坏的文件。