LOGAPPLY フェーズの最適化

表スペースのリカバリーに要する時間は、ログ・データを読み取り、適用するのに 要する時間によっても異なります。 いくつかのステップを実行すると、このプロセスを最適化することができます。 可能な場合は、Db2 は必要なログ・レコードをアクティブ・ログから読み取り、最高のパフォーマンスを提供します。

アクティブ・ログで見つからないログ・レコードは、アーカイブ・ログ・データ・セットから読み取られます。 アーカイブ・ログ・データ・セット、要求を満たすために動的に割り振られます。 アーカイブ・ログ・データ・セットに使用されるストレージのタイプは、 パフォーマンスの重要な要因です。 パフォーマンスを向上させるために、以下のアクションを考慮してください。

  • ログのパスが 1 回ですむように、オブジェクトのリストを 1 つ のユーティリティー・ステートメントで RECOVER してください。
  • 可能な限り最良のパフォーマンスを得るためには、アーカイブ・ログをディスク上に保持してください。
  • DFSMShsmを使用してアーカイブログのデータセットを制御し、次善のパフォーマンスを提供します。 DB2 は、データ・セットの再呼び出しを最適化します。 データ・セットが再呼び出しされた後、DB2 はそのデータ・セットをディスクから読み取ります。
  • アーカイブ・ログをテープから読み取る必要がある場合、DB2 は処理可能 (ready-to-process) 要求 および先読みマウント (look-ahead mount) 要求によってアクセスを最適化します。 後続の RECOVER ジョブで同じアーカイブ・ログ・テープを必要と する場合は、DB2 は磁気テープ装置の割り振り解除の遅延も許可します。 これらの方法については、以下の段落で詳しく説明します。

BSDS には、使用するログ・データ・セットとその存在する場所が入って います。 BSDS 情報は最新の状態に維持する必要があります。 アーカイブ・ログ・データ・セットがカタログされる場合、ICF カタログは必要なデータ・セット をどこに割り振るかを示します。

DFSMShsm データ・セット

最初のDFSMShsmアーカイブログデータセットのリコールは、LOGAPPLYフェーズが開始すると自動的に開始します。 再呼び出しが完了し、最初のログ・レコードが読み取られると、 次のアーカイブ・ログ・データ・セットの再呼び出しが開始されます。 この処理は、先読み再呼び出しと呼ばれます。 その目的は、先行するデータ・セットを読み取る間に、次のデータ・セットを再呼び出しすることです。

再呼び出しが完了すると、このデータ・セットは、これを必要とするすべての RECOVER ジョブ で使用可能になります。 読み取りが並列に進行します。

非 DFSMShsm テープ・データ・セット

DB2 は、ジョブ全体で必要とされる すべてのテープ・ボリュームをコンソール上に報告します。 その報告では、次の 2 つのボリューム・タイプを区別しています。

  • アスタリスク (*) のマークがないボリュームは いずれも、ジョブを完了するために必要なものです。 これらのボリュームは、できるだけ早くテープ・ライブラリーから入手しておく必要があります。
  • アスタリスク (*) のマークがあるボリュームには、 データが入っており、これはアクティブ・ログ・データ・セットの 1 つにも含まれています。 このボリュームは必要な場合もあれば、そうでない場合もあります。

テープがマウントされ、読み取られると、DB2 は次の 2 種類のマウント要求を出します。

  • 処理可能: 現行ジョブでは、このテープを即時に必要として います。 DB2 は、テープがロードされるとすぐにこれを割り振り、オープンします。
  • 先読み: これは、現行ジョブで必要な、次のテープ・ボリュームです。 この要求に応答することによって、DB2 は、データ・セットが必要とされる前に 割り振り、オープンすることが可能となり、その結果、ジョブの全体の経過時間が短縮されます。

SET ARCHIVE コマンドの COUNT オプションを指定することにより、アーカイブ・ログの読み取りに 使用される入力磁気テープ装置の最大数を動的に変更することができます。 例えば、次のコマンドでは、DB2 サブシステムに 10 の磁気テープ装置を割り当てます。

-SET ARCHIVE COUNT (10)

DISPLAY ARCHIVE READ コマンドを出すと、現在、マウントされているテープのボリュームと その状況が表示されます。

遅延割り振り解除

Db2 アーカイブログの読み取りに使用されるテープユニットの解放を遅らせることができます。 これは、いくつかの RECOVER ユーティリティー・ステートメントを並列に実行するときに有効です。 デアロケーションを遅らせることで、 Db2 同じテープユニット上の同じボリュームを、再アロケーションに時間をかけることなく、異なるRECOVERジョブ用に再読み込みすることができます。

動的に、デアロケーションを遅延させる時間を変更することができます。 Db2 SET ARCHIVEコマンドのTIMEオプションを使用して、遅延の解除時間を動的に変更することができます。 例えば、60 分の遅延を指定するには、次のコマンドを出します。

-SET ARCHIVE TIME(60)

データ共用環境では、あるメンバーがリカバリーで必要とする データ・セットを別のメンバーがホールドしないように、(0) を指定するとよいでしょう。

パフォーマンス要約

  1. アーカイブ・ログをディスクに割り振ることによって、最良のパフォーマンスを実現してください。
  2. ログの読み取り処理による割り振りが行われる前に、カタログ済みテープ・データ・セットをディスクに ステージングするように考慮してください。
  3. テープからデータ・セットを読み取る場合は、COUNT および TIME の両方の値を、 システムの制約内での最大許容値に設定してください。