| Oracle® Hierarchical Storage Manager and StorageTek QFS Software ファイルシステム復旧ガイド リリース 6.0 E56779-02 |
|
![]() 前 |
![]() 次 |
このセクションでは、Oracle HSM ファイルシステムが破損または損失したときに使用する回復プロセスについて概要を説明します。手順は、該当するファイルシステムのタイプ、および実行したバックアップと回復の準備のタイプによって異なります。しかし、実行する必要のある基本タスクには 2 つあります。
開始する前に注意しなければならない点として、Oracle HSM メタデータサーバーの損失から回復する場合は、先に進む前にOracle HSM 構成の復元で説明する第3章が完了していることを確認してください。この章の手順では、ファイルシステムの損失前に Oracle HSM ソフトウェアがインストールおよび構成されていることを前提としています。
ファイルおよびディレクトリを回復する前に、それらを配置する場所が必要です。そのため、回復プロセスの 1 つめのステップは、空の代替ファイルシステムを作成することです。次のように進めます。
sammkfs コマンドを使用したファイルシステムの再作成ファイルシステムのメタデータサーバーに root としてログインします。
root@solaris:~#
ファイルシステムが現在マウントされている場合は、アンマウントします。コマンド umount mount-point (mount-point は、ファイルシステムがマウントされているディレクトリ) を使用します。
この例では、ファイルシステム /samqfs1 をアンマウントします。
root@solaris:~#umount/samqfs1root@solaris:~#
テキストエディタで /etc/opt/SUNWsamfs/mcf ファイルを開きます。ハードウェア構成を確認します。ハードウェアを変更する必要があった場合は、ファイルを適宜編集し、変更を保存します。
この例では、2 つの障害のあるディスクデバイスの装置 ID を代替デバイスの装置 ID と交換します。装置番号は変化しないことに注意してください。
root@solaris:~#vi/etc/opt/SUNWsamfs/mcf# Equipment Equipment Equipment Family Device Additional # Identifier Ordinal Type Set State Parameters #----------------------- --------- --------- --------- ------ ------------- samqfs1 100 ms samqfs1 on/dev/dsk/c1t3d0s3101 md samqfs1 on/dev/dsk/c1t4d0s5102 md samqfs1 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:wqroot@solaris:~#
エラーを mcf ファイルで確認します。コマンド sam-fsd を使用します。
sam-fsd コマンドは、Oracle HSM 構成ファイルを読み取り、ソフトウェアを初期化します。エラーを検出すると停止します。
root@solaris:~# sam-fsd
sam-fsd コマンドによって mcf ファイルでエラーが見つかった場合は、ファイルを編集してエラーを修正し、前の手順の説明に従って再確認します。
次の例では、sam-fsd はデバイスの未指定の問題を報告します。これは、装置 ID フィールドの入力ミスである可能性があります。
root@solaris:~# sam-fsd Problem in mcf file /etc/opt/SUNWsamfs/mcf for filesystem qfsms sam-fsd: Problem with file system devices.
通常、このようなエラーの原因は不注意なタイプミスです。ここで、エディタで mcf ファイルを開くと、デバイス 102 (2 番目の md デバイス) の装置名のスライス番号の部分に 0 ではなく文字 o を入力したことがわかりました。
root@solaris:~#vi/etc/opt/SUNWsamfs/mcf... qfsms 100 ms qfsms on /dev/dsk/c0t0d0s0 101 md qfsms on /dev/dsk/c0t3d0so102 md qfsms on
そのため、エラーを修正し、ファイルを保存し、再確認します。
root@solaris:~# vi /etc/opt/SUNWsamfs/mcf ... qfsms 100 ms qfsms on /dev/dsk/c0t0d0s0 101 md qfsms on /dev/dsk/c0t3d0s0102 md qfsms on:wqroot@solaris:~#sam-fsd
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:~#
mcf ファイルを読み取り、適宜再構成を実行するよう、Oracle HSM ソフトウェアに指示します。
root@solaris:~#samdconfigConfiguring SAM-FS root@solaris:~#
代替ファイルシステムを作成します。コマンド sammkfs family-set-name (family-set-name はファイルシステムの名前) を使用します。
この例では、ファイルシステム samqfs1 を再作成します。
root@solaris:~#sammkfssamqfs1Building 'samqfs1' will destroy the contents of devices: /dev/dsk/c0t0d0s0 /dev/dsk/c0t3d0s0 Do you wish to continue? [y/N]yestotal data kilobytes = ... root@solaris:~#
必要に応じてファイルシステムのマウントポイントディレクトリを再作成します。
この例では、ディレクトリ /samqfs1 を再作成します。
root@solaris:~#mkdir/samqfs1root@solaris:~#
オペレーティングシステムの /etc/vfstab ファイルをバックアップします。
root@solaris:~#cp/etc/vfstab /etc/vfstab.backuproot@solaris:~#
テキストエディタで /etc/vfstab ファイルを開きます。/etc/vfstab ファイルに復元しているファイルシステムのマウントパラメータが含まれない場合は、マウントパラメータを復元する必要があります。
この例では、Oracle HSM サーバーが代替ホストにインストールされます。そのため、ファイルには復元しているファイルシステム samqfs1 のマウントパラメータが含まれていません。
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 - ...
可能な場合は、マウントパラメータを復元するときに元の /etc/vfstab ファイルのバックアップコピーを開き、必要な行を現在の /etc/vfstab ファイルにコピーします。変更が完了したら、ファイルを保存し、エディタを閉じます。
この例では、バックアップコピー /zfs1/sam_config/20140127/etc/vfstab があります。そのため、samqfs1 ファイルシステムに関する行をバックアップコピーからコピーし、現在の /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 - ... samqfs1 - /samqfs1 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 - ...samqfs1 - /samqfs1 samfs - yes stripe=1,bg:wqroot@solaris:~#
ファイルシステムをマウントします。
この例では、ファイルシステム samqfs1 をマウントします。
root@solaris:~#mount/samqfs1root@solaris:~#
ここで、ディレクトリおよびファイルの復元を開始します。
ベースファイルシステムを再作成したら、ディレクトリおよびファイルの復元を開始できます。2 つの方法が考えられます。
samfsdump (qfsdump) 回復ポイントファイルからのファイルおよびディレクトリの復元は、定期的に回復ポイントを作成して安全に格納している場合は、間違いなく最適なオプションです。
この方法は、ファイルシステムのメタデータを復元するため、ファイルシステムがただちにフル機能に戻ります。アーカイブファイルシステムは、ユーザーがファイルにアクセスしたときには、ただちにまたは必要に応じてアーカイブメディア上のファイルに迅速にアクセスして、ファイルをディスクキャッシュに書き戻すことができます。ファイルは元の属性で復元されます。
回復ポイントにデータとメタデータが含まれる場合、この方法は、サードパーティーアプリケーションによってバックアップされていないスタンドアロン (非アーカイブ) ファイルシステムを復元する唯一の方法でもあります。
回復スクリプトおよび Oracle HSM star ユーティリティーを使用して回復ポイントファイルなしでのアーカイブメディアからのファイルおよびディレクトリの復元を実行します。
samfsdump (qfsdump) 回復ポイントファイルからのファイルおよびディレクトリの復元可能なかぎり、もっとも最新の回復ポイントファイルを基にファイルシステムの回復を行なってください。Oracle HSM ファイルシステムの障害から回復する方法として、この方法は間違いなくもっとも速く、もっとも信頼性が高く、もっとも徹底されていて、もっとも労力がかかりません。したがって、回復ポイントファイルが存在する場合は、次の手順に従います。
ファイルシステムのメタデータサーバーに root としてログインします。
root@solaris:~#
アーカイブおよびリサイクルをまだ停止していない場合は、アーカイブ処理およびリサイクル処理プロセスの停止の手順で停止します。
最新の使用可能な回復ポイントファイルを特定します。
この例では、独立したファイルシステム /zfs1 上のサブディレクトリ samqfs1_recovery というよくわかっている場所にファイルシステム samqfs1 の回復ポイントファイルを日付付きで作成しています。そのため、最新のファイル (20140324) は簡単に見つかります。
root@solaris:~#ls/zfs1/samqfs1_recovery/20140321 20140322 20140323 20140324 root@solaris:~#
再作成したファイルシステムのマウントポイントディレクトリに変更します。
この例では、再作成したファイルシステムが /samqfs1 にマウントされています。
root@solaris:~#cd/samqfs1root@solaris:~#
ファイルシステム全体を現在のディレクトリに相対的に復元します。コマンド 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 で指定されるファイルに保存します。
アーカイブファイルシステムを復元している場合は、このファイルをアーカイブメディアからファイルを自動で書き込むために使用することができるため、ディスクキャッシュは回復ポイントが作成された時点と同じ状態になります。
この例では、ファイルシステム samqfs1 を回復ポイントファイル /zfs1/samqfs1_recovery/20140324 から復元します。オンラインファイルをファイル /root/20140324.log に記録します (次のコマンドは 1 行で入力し、改行はバックスラッシュ文字でエスケープします)。
root@solaris:~#samfsrestore-T-f/zfs1/samqfs1_recovery/20140324\-g/root/20140324.logsamfsdump 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:~#
スタンドアロン (非アーカイブ) ファイルシステムを復元した場合、回復ポイントファイルに保存されていたファイルシステムのメタデータおよびファイルデータが復元されています。ここで中止します。
それ以外の場合は、アーカイブ済みファイルの再書き込み (必要な場合)を実行します。
ほとんどの場合で、ファイルシステムの回復後に、ファイルをアーカイブメディアからディスクに再書き込みしないでください。必要に応じて、ユーザーにファイルへアクセスさせることで書き込みさせるようにします。
この方法によって、ステージングの優先順位がユーザーのニーズに応じて自動的に設定されます。これにより、しばらくの間オフラインになっていた可能性があるときに、ファイルシステムの可用性が最大限に高まります。すぐに必要なファイルのみステージングされます。そのため、ステージング作業全体が一定の期間に分散されます。これにより、ドライブなどのファイルシステムリソースは、常に高優先順位のタスク (新しいファイルのアーカイブや緊急に必要なユーザーデータの書き込みなど) で使用できることを保証できます。
また、この方法により、回復に関連する管理作業も軽減されます。
障害の発生前にはディスクキャッシュ内にあったファイルを再ステージングする必要がある場合は、コマンド /opt/SUNWsamfs/examples/restore.sh logfile を使用します。ここで logfile は、samfsrestore (qfsrestore) コマンドの -g オプションで作成したログファイルのパスおよびファイル名です。
restore.sh スクリプトにより、ログファイルに記載されているファイルがステージングされます。これらは、samfsrestore (qfsrestore) 回復ポイントファイルが作成されたときにオンラインだったファイルです。
何千ものファイルをステージングする必要がある場合は、ログファイルを小さなファイルに分割することを検討してください。その後、各ファイルで順に restore.sh スクリプトを実行します。これにより、書き込み作業は長時間に分散するため、アーカイブおよびユーザー開始の書き込みとの干渉が減少します。
ここで、破損ファイルの特定および代替コピーの特定を実行します。
samfsrestore プロセスでは、テープ上の対応するファイルシステムデータを見つけてファイルシステム内の適切な位置に復元できるように、ファイルシステムメタデータのコピーを回復ポイントファイルから復元します。ただし、回復ポイントファイルはファイルシステムが失われる前に作成されています。そのため、必然的に、一部のメタデータは回復ポイントが作成されてから変更されたデータの場所を示すのが普通です。ファイルシステムはこれらのファイルのレコードを保持していますが、その内容を見つけることはできません。そのため、このようなファイルには damaged フラグが設定されます。
場合によっては、破損ファイルのデータが本当に失われていることがあります。しかしその他の場合は、復元したメタデータが古いだけです。復元したメタデータが単に現在の場所を記録していないために、復元したファイルシステムが、回復ポイントの作成後にアーカイブされたファイルのデータを見つけられないことがあります。このような場合は、データを自分で見つけたあとに、復元したメタデータを更新すると、ファイルを破損していない状態にできる可能性があります。
不明なファイルを見つけてメタデータを更新し、ファイルを破損していない状態にするには、アーカイバログを使用します。次のように進めます。
ファイルシステムメタデータサーバーに root してまだログインしていない場合は、ログインします。
root@solaris:~#
最新の使用可能なアーカイバログファイルを特定します。
サーバー上のアーカイバログが使用可能なままである場合は、最新の情報が含まれている可能性があります。そうでない場合は、バックアップコピーを使用する必要があります。
この例では、アーカイバログファイル samqfs1.archiver.log がサーバーの /var/adm/ サブディレクトリにあります。また、独立したファイルシステム /zfs1 上のサブディレクトリ samqfs1_recovery/archlogs というよくわかっている場所にも、日付付きのアーカイバログファイルのコピーがあります。そのため、最新のファイル samqfs1.archiver.log と最近のバックアップ 20150324 の両方があります。
root@solaris:~#dir/var/adm/*.archiver.logsamqfs1.archiver.log root@solaris:~#dir/zfs1/samqfs1_recovery/archivelogs20150322 20150323 20150324 root@solaris:~#
新しく復元したファイルシステムで、破損ファイルを特定します。コマンド sfind mountpoint -damaged (mountpoint は、回復したファイルシステムがマウントされるディレクトリ) を使用します。
この例では、ディレクトリ /samqfs1 で検索を開始し、6 個の破損ファイルを見つけます。
root@solaris:~#sfind/samqfs1-damaged./genfiles/ay0 ./genfiles/ay1 ./genfiles/ay2 ./genfiles/ay5 ./genfiles/ay6 ./genfiles/ay9 root@solaris:~#
アーカイバログの最新のコピーで、各破損ファイルに関連するエントリを検索します。コマンド grep "file-name-expression" archiver-log (file-name-expression は破損したファイルと一致する正規表現、archiver-log は調べているアーカイバログのコピーのパスおよび名前) を使用します。
この例では、正規表現 genfiles\/ay0 を使用して、ファイル genfiles/ay0 に関連するエントリの最新ログファイルを検索します。
root@solaris:~#grep"genfiles\/ay0"/var/adm/samqfs1.archiver.log
ファイルのエントリが見つかったら、データファイルがアーカイブされているアーカイブ (tar) ファイルのメディアのタイプ、ボリュームシリアル番号、および位置をメモします。また、ファイルの復元方法に影響するため、ファイルタイプもメモします。
この例では、ファイル genfiles/ay0 のエントリを探します。このログエントリは、2015 年 3 月 4 日の午後 9:49 に LTO (li) ボリューム VOL012 を使用してアーカイブされた (A) ことを示しています。ファイルは、16 進数の位置 0x78 (78) にあるテープアーカイブファイルに格納されています。このファイルは通常ファイル (タイプ f です)。
root@solaris:~#grep"genfiles\/ay0 "/var/adm/samqfs1.archiver.logA2015/03/0421:49:15liVOL012SLOT12 allsets.178.1 samqfs1 7131.14 8087 genfiles/ay0f0 51 root@solaris:~#
アーカイバログエントリのフィールドの詳細については、付録A アーカイバログの理解を参照してください。
現在のアーカイバログのコピー内で破損ファイルのエントリが見つからない場合は、回復ポイントファイルの作成後に作成されたバックアップアーカイブログを使用して検索を繰り返します。
アーカイバログは、頻繁にロールオーバーされます。そのため、複数のアーカイバログのコピーを保持すると、現在のアーカイバログの対象期間よりも前に作成されたアーカイブのコピーを使用して、破損ファイルを回復できる可能性があります。
次に、回復ポイントが作成されたあとでアーカイブされた不明ファイルの検索を実行します。
samfsrestore プロセスでは、テープ上の対応するファイルシステムデータを見つけてファイルシステム内の適切な位置に復元できるように、ファイルシステムメタデータのコピーを回復ポイントファイルから復元します。ただし、回復ポイントファイルはファイルシステムが失われる前に作成されています。それ自体が作成されたあとに作成およびアーカイブされたファイルのメタデータを含めることはできません。
通常は、最後の回復ポイントの作成からファイルシステムの損失までの間にアーカイブされたファイルがあります。これらのファイルのメタデータは回復ポイントファイル内にないため、samfsrestore はこれらを、破損ファイルとしても回復できません。ただし、ファイルデータはアーカイブメディアにあります。そのため、アーカイブログを使用して、メタデータを再作成し、ファイスシステム内の正しい場所にファイルを回復できます。
ファイルシステムメタデータサーバーに root してまだログインしていない場合は、ログインします。
root@solaris:~#
最新の使用可能なアーカイバログファイルを特定します。
サーバー上のアーカイバログが使用可能なままである場合は、最新の情報が含まれている可能性があります。そうでない場合は、バックアップコピーを使用する必要があります。
この例では、アーカイバログファイル samqfs1.archiver.log がサーバーの /var/adm/ サブディレクトリにあります。また、独立したファイルシステム /zfs1 上のサブディレクトリ samqfs1_recovery/archlogs というよくわかっている場所にも、日付付きのアーカイバログファイルのコピーがあります。そのため、最新のファイル samqfs1.archiver.log と最近のバックアップ 20150324 の両方があります。
root@solaris:~#dir/var/adm/*.archiver.logsamqfs1.archiver.log root@solaris:~#dir/zfs1/samqfs1_recovery/archivelogs20150322 20150323 20150324 root@solaris:~#
アーカイバログの最新のコピーで、回復ポイントが作成されたあとに作成されたエントリを検索します。コマンド grep "time-date-expression" archiver-log (time-date-expression は検索を開始する日時と一致する正規表現、archiver-log は調べているアーカイバログのコピーのパスおよび名前) を使用します。
この例では、2015 年 3 月 24 日の午前 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/samqfs1.archiver.log
復元されていないファイルのアーカイブコピーのエントリが見つかったら、パス、名前、ファイルタイプ、メディアタイプ、および位置の情報をメモします。
ファイルタイプは、通常のファイルの場合は f、リムーバブルメディアのファイルの場合は R、セグメント化ファイルのデータセグメントの場合は S として一覧表示されます。メディアタイプは、2 文字のコードです (付録B を参照)。
バックアップコピーを探すには、コピーを格納するメディアボリュームのボリュームシリアル番号が必要です。コピーが順次アクセスメディア (磁気テープなど) に格納されている場合は、アーカイブ (tar) ファイルの開始位置を表す 16 進数値もメモします。コピーがランダムアクセスメディア (アーカイブディスクなど) に格納されている場合は、ボリュームシリアル番号に関連する tar ファイルのパスおよびファイル名をメモします。最後に、ファイルがセグメント化されている場合は、セグメント長をメモします。
次の例で、アーカイバログエントリは、最後の回復ポイントが作成されてから次のファイルがアーカイブされたことを示しています。
root@solaris:~#grep"ˆA 2015\/03\/2[34]"/var/adm/samqfs1.archiver.logA2015/03/23 10:43:18liVOL002all.1111.1 samqfs1 1053.3 69genfiles/hopsf0 0A2015/03/23 10:43:18liVOL002all.1111.3 samqfs1 1051.1 104genfiles/anicf0 0A2015/03/23 13:09:05liVOL004all.1212.1 samqfs1 1535.2 1971genfiles/genA0f0 0A2015/03/23 13:09:06liVOL004all.1212.20 samqfs1 1534.2 1497genfiles/genA9f0 0A2015/03/23 13:10:15liVOL004all.1212.3f samqfs1 1533.2 6491genfiles/genA2f0 0A2015/03/23 13:12:25liVOL003all.12.5e samqfs1 1532.2 17717genfiles/genA13f0 0A2015/03/23 13:12:28liVOL003all.12.7d samqfs1 1531.2 14472genfiles/genA4f0 0A2015/03/23 13:12:40liVOL003all.12.9c samqfs1 1530.2 19971genfiles/genA45f0 0A2015/03/23 21:49:15dkDISKVOL1/f2all.1 2.2e9 samqfs1 1511.2 8971socfiles/spcC4f0 0A2015/03/23 21:49:15dkDISKVOL1/f2all.1 2.308 samqfs1 1510.2 7797spcfiles/spcC5f0 0A2015/03/23 14:01:47liVOL013all.176a.1 samqfs1 14.510485760bf/dat011/1S0 51A2015/03/23 14:04:11liVOL013all.176a.5002 samqfs1 15.510485760bf/dat011/2S0 51A2015/03/23 14:06:24liVOL013all.11409aa4.1 samqfs1 16.5184bf/dat011/3 S 0 51A2015/03/23 18:28:51 liVOL036all.112d.1 samqfs1 11731.1 89128448rf/rf81f0210A2015/03/23 18:28:51 liVOL034all.115f.0 samqfs1 11731.1 525271552rf/rf81f1220 root@solaris:~#
次の情報に注意してください。
8 つの通常 (タイプ f) ファイルは、LTO (li) メディア上にアーカイブ (A) されています。genfiles/hops および genfiles/anic はボリューム VOL002 の位置 0x111、genfiles/genA0、genfiles/genA9、および genfiles/genA2 はボリューム VOL004 の位置 0x212、genfiles/genA13、genfiles/genA4、および genfiles/genA45 はボリューム VOL003 の位置 0x212 にあります。
2 つの通常 (タイプ f) ファイルは、ディスク (dk) メディア上にアーカイブ (A) されています。spcfiles/spcC4 および spcfiles/spcC5 はボリューム DISKVOL1 のアーカイブファイル DISKVOL1 \f2 にあります。
1 つの 3 分割されたセグメント化 (タイプ S) ファイルは、LTO (li) メディア上にアーカイブされています。bf/dat011 はボリュームVOL013 の位置 0x76a から始まる 2 セグメント内、および位置 1409aa4 から始まる 1 セグメント内にあります。セグメント /1 は 10485760 バイト、セグメント /2 は 10485622 バイト、セグメント /3 は 184 バイトの長さがあります。
1 つの通常 (タイプ f) ボリュームオーバーフローファイルは、LTO (li) メディア上にアーカイブ (A) されています。rf/rf81 はボリューム VOL036 の位置 0x12d から始まり、ボリューム VOL034 の位置 0x15f から続行します。
アーカイバログエントリのフィールドの詳細については、付録A アーカイバログの理解を参照してください。
回復ポイントファイルの作成後に作成されたバックアップアーカイブログを使用して、検索を繰り返します。
アーカイバログは、頻繁にロールオーバーされます。そのため、複数のアーカイバログのコピーを保持すると、現在のアーカイバログの対象期間よりも前に作成されたアーカイブのコピーを使用して、破損ファイルを回復できる可能性があります。
ここで、破損ファイルや不明ファイルの復元を実行します。
メディアボリュームおよびアーカイブ (tar) ファイルのメディアでの位置がわかれば、不明ファイルや破損ファイルの復元は、単に tar ファイルにアクセスして必要なデータファイルを抽出するだけで済みます。アーカイブファイルがアーカイブディスクデバイス上に存在するときは、tar ファイルはファイルシステムマウントポイント下のランダムアクセス可能なディレクトリにあるので、簡単な作業です。しかし、tar ファイルがテープのような大容量の順次アクセスメディア上にあるときは、複雑さが増します。通常は、アーカイブファイルがランダムアクセスディスクデバイスに書き込まれるまで、アーカイブファイルから必要なデータファイルを抽出できません。アーカイブファイルは大きくなる可能性があるため、これでは回復時に時間がかかり、扱いにくいことがあります。そのため、次の手順では Oracle HSM コマンド request を使用してアーカイブファイルをメモリーに読み込み、ディスクから読み取っているかのように利用できるようにします。
できるだけ多くの破損または不明の通常ファイルを復元します。ファイルごとに次の手順を実行します。
複数のボリュームにまたがっていない通常ファイルの回復から開始します。紛失および破損した通常ファイルの復元の手順を使用します。
次にセグメント化ファイルを回復します。紛失および破損したセグメント化ファイルの復元の手順を使用します。
次に、ボリュームにまたがる通常ファイルを復元します。紛失および破損したボリュームオーバーフローファイルの復元の手順を使用します。
コピーがあるすべての不明ファイルおよび破損ファイルを復元したら、archiver.cmd ファイルから wait ディレクティブを削除してアーカイブを再度有効にします。recycler.cmd ファイルから -ignore パラメータを削除してリサイクルを再度有効にします。
ファイルシステムは、可能なかぎり元の状態に近づきます。これでも破損または不明なファイルは、回復できません。
コピーのある欠落または破損したファイルをすべて復元したら、アーカイブファイルシステムの通常運用への復元に進みます。
回復ポイントファイルの支援なしでファイルシステムをアーカイブメディアから直接回復する必要がある場合は、そのように実行できます。次のように進めます。
ファイルを光学メディアから復元しようとする場合は、ここで作業を中止して、Oracle サポートサービスに連絡してください。
ファイルシステムのネットワークファイルシステム (NFS) 共有を無効にします。
アーカイブとリサイクルを無効にします。アーカイブ処理およびリサイクル処理プロセスの停止で概要を示した方法を使用します。
テープドライブを回復プロセスで排他的に使用するように予約します。コマンド samcmd unavail drive-equipment-number (drive-equipment-number は /etc/opt/SUNWsamfs/mcf ファイルでドライブに割り当てられた装置番号) を使用します。
samcmd unavail コマンドにより、ドライブはアーカイブ処理、書き込み処理、および解放処理のプロセスで使用できなくなります。この例では、ドライブ 804 を予約します
root@solaris:~#samcmdunavail804root@solaris:~#
ファイル /opt/SUNWsamfs/examples/tarback.sh を代替位置 (/tmp など) にコピーします。
tarback.sh ファイルは、指定されたメディアボリュームセットからファイルを復元する実行可能スクリプトです。このスクリプトは、各ボリューム上の各アーカイブ (tar) ファイルに対してコマンド star -n を実行します。テープ上のバックアップコピーにファイルシステムで対応するファイルがない場合、またはテープ上のコピーがファイルシステムで対応するファイルよりも新しい場合、star -n はコピーを復元します。
この例では、スクリプトを /tmp にコピーします。
root@solaris:~#cp/opt/SUNWsamfs/examples/tarback.sh/tmp/tarback.shroot@solaris:~#
テキストエディタで 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" ...
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" ...
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
...
tarback.sh ファイルのコピーで、変数 TAPEDRIVE を探します。その値を、デバイスの raw パスに設定します (二重引用符で囲む)。
この例では、デバイス 804 の raw パスは /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"
...
tarback.sh ファイルのコピーで、変数 BLOCKSIZE を探します。その値を、必要なブロックサイズの 512 バイト単位の数字に設定します。
この例では、LTO-4 ドライブで 256K バイトのセグメントサイズにします。そのため、512 と指定します。
LOAD="/opt/SUNWsamfs/sbin/load"
UNLOAD="/opt/SUNWsamfs/sbin/unload"
EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
BLOCKSIZE=512
...
tarback.sh ファイルのコピーで、変数 MEDIATYPE を探します。その値を、ドライブがサポートするメディアのタイプを表す、付録B に一覧表示されている 2 文字のメディアタイプコードに設定します。メディアタイプは二重引用符で囲みます。
この例では、LTO-4 ドライブを使用しています。そのため、li と指定します。
EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
BLOCKSIZE=512
MEDIATYPE="li"
...
tarback.sh ファイルのコピーで、変数 VSN_LIST を探します。その値として、ファイルのバックアップコピーが含まれている可能性のあるテープを識別する、ボリュームシリアル番号 (VSN) の空白文字区切りリストを指定します。リストは二重引用符で囲みます。
この例では、ボリューム VOL002、VOL003、VOL004、VOL013、VOL034、および VOL036 を指定します。
EQ=804 TAPEDRIVE="/dev/rmt/3cbn" BLOCKSIZE=512 MEDIATYPE="lt"VSN_LIST="VOL002VOL003VOL004VOL013VOL034VOL036"...
tarback.sh ファイルのコピーを保存します。エディタを閉じます。
EQ=804
TAPEDRIVE="/dev/rmt/3cbn"
BLOCKSIZE=512
MEDIATYPE="lt"
VSN_LIST="VOL002 VOL003 VOL004 VOL013 VOL034 VOL036"
...
:wq
root@solaris:~#
/tmp/tarback.sh スクリプトを実行します。
root@solaris:~# /tmp/tarback.sh
復元されたファイルごとに、必要に応じてユーザーおよびグループの所有権、モード、拡張属性、およびアクセス制御リスト (ACL) を再作成します。
/tmp/tarback.sh スクリプトでは、このようなタイプのメタデータを復元できません。
/tmp/tarback.sh スクリプトを実行してファイルの回復が終了したら、アーカイブファイルシステムの通常運用への復元に進みます。