9.7.10 スパース・コピーの実行

ASM cpコマンドは、スパース・ファイルを新しい宛先にコピーします。ただし、この操作では、すべてのブロックがインスタンス化されているスパース・ファイルが親からコピーされます。スパース・コピー機能を使用すると、ファイルのスパース・コピーを実行できます。

複数のASMインスタンスを同時に実行できます。操作に、操作が実行されている以外の別のASMインスタンスのソースまたは宛先が含まれる場合は、リモートASMインスタンスとして処理されます。スパース・コピーは、ローカルASMインスタンス上、またはローカルASMインスタンスとリモートASMインスタンス間で実行できます。ただし、スパース・コピーは、2つのリモートASMインスタンス間では機能しません。

スパース・コピーを実行するには、既存のASM cpコマンドで新しい--sparseオプションを使用します。構文は次のようになります。

ASMCMD> cp --sparse <src_sparse_file> <tgt_file>

setsparseparentという新しいASMコマンドを使用すると、スパース・ファイルの親を設定できます。ローカルASMインスタンス上のスパース宛先に対するファイルのスパース・コピーを実行すると、その親がスパース・コピー操作の一部として設定されます。ただし、この宛先がリモートASMインスタンスにある場合は、setsparseparentコマンドを使用してその親を明示的に設定する必要があります。

setsparseparentコマンドには、パラメータとしてスパース子ファイルと親ファイルが必要です。これにより、スパース子ファイルの親が新しい親ファイルに設定されます。構文は次のようになります。

ASMCMD> setsparseparent <sparse_file> <parent_file>

cp ASMコマンドは、スパース・コピー操作を実行する前に次の検証を実行します。この操作は、次の基準を満たす場合にのみ許可されます。

  • ソース・ファイルが存在し、これがスパース・ファイルである必要があります。

  • 複数のソース・スパース・ファイルを指定する場合は、これらすべてが同じASMインスタンス上に存在する必要があります。

  • リモートASMインスタンス上の複数のスパース・ファイルをローカルASMインスタンス上の宛先にコピーする(その逆も同様)ことは、すべてのソース・ファイルが同じASMインスタンス上にある場合に許可されます。

  • 宛先ファイルは、スパース・ディスク・グループでサポートされる必要があります。ただし、イベントKFTST_KFPKG_CP_SPARSEが設定されている場合は、非スパース・ファイルでも構いません。このイベントは、ファイルをスパース以外の宛先にマージしてコピーすることにより、スパース・コピー操作を検証する場合に必要です。

  • リモートASMインスタンスにソースと宛先の両方が存在することはできません。ただし、リモートASMインスタンスにソースまたは宛先のいずれかは存在できます。

  • この宛先がリモートASMインスタンスにある場合、そのファイル・タイプを検証できないため、スパース・ディスク・グループでサポートされていることを確認する必要があります。また、ASM setsparseparentコマンドを使用して、親を明示的に設定する必要があります。

  • 宛先が非スパース・ファイルの場合に、setsparseparentコマンドを実行すると、子ファイルがスパースである必要があるため、このコマンドは失敗します。宛先が非スパース・ファイルの場合、これは第2レベルの検証です。

setsparseparent ASMコマンドは、親を設定する前に次の検証を実行します。この操作は、次の基準を満たす場合にのみ許可されます。

  • 子ファイルが存在し、これがスパース・ファイルである必要があります。

  • 親ファイルが存在している必要があります。これは、スパース・ファイルでも非スパース・ファイルでも構いません。

  • 親ファイルおよび子ファイルが、同じASMインスタンス上に存在する必要があります。

ノート:

setsparseparent ASMコマンドで指定するファイルに有効な親子関係があることを確認する必要があります。このコマンドは、リモートASMインスタンス上のファイルに対してこのチェックを実行できません。ファイルに有効な親子関係がない場合は、データの整合性および破損の問題が発生する可能性があります。

例1: 次のASMコマンドは、スパース・ファイルTBS_1.264.908376549を宛先+SPARSEDG/child_1にコピーします。

ASMCMD> cp –-sparse +SPARSEDG/MERGE/DATAFILE/TBS_1.264.908376549 +SPARSEDG/child_1

例2: 次のASMコマンドは、スパース・ファイルremote_child_10に親tbs_1.269.908374993を設定します。

ASMCMD> setsparseparent +SPARSEDG/remote_child_10 +DATAFILE/DATAFILE/tbs_1.269.908374993

例3: 次のコマンドは、スパース子ファイルchild_1、child_2およびchild_3を宛先ディレクトリ+SPARSEDGにコピーします。

ASMCMD> cp –-sparse +SPARSEDG/DATAFILE/child_1 +SPARSEDG/DATAFILE/child_2 +SPARSEDG/DATAFILE/child_3 +SPARSEDG/