Admin Alert: IBM i ファイルを再編成してディスク・パフォーマンスを改善する、パート 2
前号では、IBM i パーティションの物理ファイルを検出し、効率的に再編成するためのテンプレートをまとめることから始めました。管理者がファイルを再編成する最も一般的な理由を説明し、システム上のどのファイルを再編成する必要があるか検出する手順を示しました。今週は、ファイルを再編成するさまざまな方法を見直すことでプロセスを完了し、ファイルがアクティブ中にファイルを再編成する手法を見てゆきます。
ファイルを効果的に再編成する手順
前回説明したように、効果的なディスク再編成戦略については次のような手順に従います。
- 再編成の必要なファイルおよびメンバーを特定する手順をセットアップする。
- Reorganize Physical File Member (RGZPFM) ステートメントを正しくセットアップする。
- 重要なファイルを再編成できる回数を特定する。
- クリアして、繰り返す。
前号では、手順 #1 について説明しました。今回は手順 2 から 4 について説明します。
手順 2:Reorganize Physical File Member (RGZPFM) ステートメントを正しくセットアップする
物理ファイルの再編成を効果的に実行するための手法は数多くあります。IBM i オペレーティング・システムでは、次のいずれかのバージョンの Reorganize Physical File Member コマンドを実行してファイル再編成を実現できます。
- RGZPFM FILE(ライブラリー/ファイル名) /* バージョン 1 */
- RGZPFM FILE(ライブラリー/ファイル名) ALWCANCEL(*YES) /* バージョン 2 */
- RGZPFM FILE(ライブラリー/ファイル名) RBDACCPTH(*OPTIMIZE) ALWCANCEL(*YES) /* バージョン 3*/
これらのファイル再編成がどのように行われるのか、また各手法が提供するメリットは次のとおりです。
バージョン 1 RGZPFM―基本のみ
バージョン 1 コマンドは削除レコードを削除し、ファイルを再編成するだけの標準 RGZPFM コマンドです。これは RGZPFM を実行する最も一般的な方法です。バージョン 1 は簡単に実行でき、問題は滅多に発生しません。
デメリットは、バージョン 1 再編成では、ファイルを再編成が完了する前に取り消すと、処理中の再編成作業を失うことです。バージョン 1 RGZPFM コマンドをグリーン・スクリーンまたはバッチ・ジョブ内のいずれで取り消すと、ターゲット・ファイルに行われた再編成による変更内容は破棄され、ファイルには最初からあった同数の削除ファイルが残ります。
バージョン 2 RGZPFM―ペナルティの発生しない再編成の取り消し
バージョン 2 RGZPFM コマンドを使用して、必要に応じてグリーン・スクリーンまたはバッチ・ジョブ内のいずれで再編成を取り消すことができます。その Allow Cancel (ALWCANCEL) パラメーターが *YES に設定されているため、バージョン 2 RGZPFM コマンドを取り消すと、それまでに完了していたファイル再編成の変更内容すべてが保持され、ファイルは部分的に再編成されます。部分的に再編成されたファイルで次回 RGZPFM コマンドを開始すると、オペレーティング・システムは、取り消された時点の再編成を再開しようとします。再編成の取り消し後に発生した変更が多すぎる場合、オペレーティング・システムは、最後に再編成を試行しようとした時点ではなく、ファイルの先頭から再編成を再開しようとする場合があります。
バージョン 3 RGZPFM―関連する論理ファイルのアクセス・パスの再ビルドにジャンプ・スタートする
バージョン 3 RGZPFM コマンドは、関連ファイルの論理ファイル・アクセス・パスが、それらに関連した物理ファイルが再編成されるときに再ビルドされる場合、多少の柔軟性をもたらします。これは、Rebuild Access Paths (RBDACCPTH) パラメーターを通して行います。
関連する論理ファイルの再編成は、Edit Rebuild of Access Paths (EDTRBDAP) コマンドを通して維持・制御されている、アクセス・パス再ビルド・リストを通して制御されます。この場合、EDTRBDAP リストを使用していると同時に、デフォルトでは、システムにアクセス・パスを再ビルドさせることができる指定された論理ファイル数しかないため、アクセス・パスの再ビルドに多少時間がかかることがあります。どれだけの数の論理ファイルが EDTRBDAP による再編成を待機しているかによって、そのすべてにおいて再編成に時間がかかります。
私たちの RGZPFM コマンドのバージョン 1 および 2 では、RBDACCPTH は *YES (デフォルト設定) に設定されています。RBDACCPTH を *YES に設定することは、RGZPFM コマンドが完了した後、依存性のある論理ファイル・アクセス・パスがすべて同期して再編成されることを示します (物理ファイルが再編成されるまで、論理ファイルの再編成は行われません)。
IBM i アクセス・パスの再ビルドをスピードアップするには、手動で行う方法と、RGZPFM の RBDACCPTH を *OPTIMIZE に設定する方法の 2 種類があります。後者は、バージョン 3 RGZPFM ステートメントで示しています。
前号で概要を説明した手法を用いて、同時アクセス・パス再ビルドの数を手作業で増やすことができます。この手法では、EDTRBDAP リストをモニターして変更し、バッチ・ジョブを実行依頼して複数の論理ファイル再ビルドをスピードアップさせる必要があります。
同時アクセス・パス再ビルドの数を増やす 2 番目の方法は、RGZPFM コマンドの Rebuild Access Path (RBDACCPTH) パラメーターを *OPTIMIZE に設定することです。RGZPFM バージョン 3 コマンドでわかるように、RBDACCPTH を *OPTIMIZEに設定すると、関連するアクセス・パスの再ビルド方法について、オペレーティング・システムに多少の余裕を持たせます。*OPTIMIZE を使用する場合、IBM i オペレーティング・システムは、次のいずれかの方法で再編成ファイルのアクセス・パスを再ビルドします。物理ファイルでの再編成操作が終了したときに、関連するアクセス・パスを非同期的に再ビルドする方法と、関連するアクセス・パスを再編成中に維持・再ビルドする方法です。
オペレーティング・システムは、どの方法だとアクセス・パス再作成がより速く完了するか計算すること(再作成を最適化すること) によって、アクセス・パスの再作成方法を判断します。
RGZPFM コマンドに他のパラメーターを設定できますが、これらは、取り消された再編成から回復し、再編成後にアクセス・パスの再作成をスピードアップするファイルの能力に影響を与える、基本的なパラメーターです。
手順 3: 重要なファイルを再編成できる回数を特定する
次の手順では、過剰な削除レコードのあるシステム・ファイルを再編成したい、またはできるタイミングを判断します。
RGZPFM 命令ではファイルをロックする必要があるため、通常は、ファイルが使用中でない場合にファイルの再編成が行われるように手配する、またはファイルがアクティブな場合に再編成が行われるように構成する必要があるでしょう。
レコード・ロックの主要因となるファイル編成は、次の方法で実現できます。
1. 通常、再編成されたファイルをロックするアプリケーションが動作しないように IBM i システムを静止させる。これには、アプリケーション・ファイルが使用中でなく、再作成の間システムが静止している場合、保守ウィンドウ中に再編成を実行する必要があります。
1. 通常、再編成されたファイルをロックするアプリケーションが動作しないように IBM i システムを静止させる。これには、アプリケーション・ファイルが使用中でなく、再作成の間システムが静止している場合、保守ウィンドウ中に再編成を実行する必要があります。
2. RGZPFM コマンドをシステムが再編成しているファイルを排他的にロックするかどうか、ターゲット・ファイルを読み取りまたはアップデート用に共有するかどうか (reorg-while-active) 指定する。これは、RGZPFM コマンドのLock 状態パラメーター (LOCK) を通して行います。LOCK は、これらのRGZPFM コマンド例で示すように、3 種類の設定のうちいずれかに設定できます。
- RGZPFM FILE(lライブラリー/ファイル名) LOCK(*EXCL) /* バージョン 4 */
- RGZPFM FILE(ライブラリー/ファイル名) LOCK(*EXCLRD) ALWCANCEL(*YES) /* バージョン5 */
- RGZPFM FILE(ライブラリー/ファイル名) LOCK(*SHRUPD) ALWCANCEL(*YES) /*バージョン6*/
バージョン 4 RGZPFM コマンドでは、LOCK パラメーターはそのデフォルト値である Exclusive (*EXCL) に設定されています。この反復で、RGZPFM コマンドは、システムが再編成しているファイルを排他的にロックできなければならず、再編成中は他のプロセスはファイルにアクセスできません。バージョン 4 RGZPFM コマンドを使用するには、ファイルは静止状態 (他のユーザーなし) でなければなりません。
バージョン 5 RGZPFM コマンドの LOCK Exclusive Read (*EXCLRD) パラメーターを使用して、他のユーザーは再編成中のファイル中のレコードを読み取ることはできますが、書き込み、アップデート、または削除はできません。LOCK パラメーターに *EXCLRD を使用するには、Allow Cancel パラメーターを *YES に設定する必要もあります。
バージョン 6 RGZPFM コマンドについては、LOCK を Shared Updated (*SHRUPD) に設定します。これにより、ユーザーは再編成中のファイルの個々のレコードを読み取り、書き込み、更新し、削除できます。バージョン 5 RGZPFM コマンドのように、Allow Cancel パラメーターを *YES に設定する必要もあります。鍵ファイル・シーケンスでファイルを再編成している場合、または到着順でレコードを保存する必要がある場合、このコマンドで LOCK = *SHRUPD パラメーターを使用しないことを覚えておくことが重要です。
LOCK パラメーターを *EXCLRD または *SHRUPD に設定する場合、
reorg-while-active 関数を実行しています。これにより、再編成中にファイルにアクセスできます。
手順 4: クリアして、繰り返す
他の 3 つの手順を実施した後、最後の手順では、ファイルの再編成を定期的に実行します。
つまり、必要な再編成コマンドを定期的に実行する定期ジョブをセットアップすることです。前号でお話ししたように、ファイル再編成は一時的なディスク・リカバリー手法です。指定した再編成をすべて一度に実行することで、ディスク・スペースを縮小できます。しかし、再編成後は、削除レコードの数は再度ゆっくりと上昇するため、ターゲット再編成を定期的に実行して、ファイル再編成戦略のメリットを大いに享受する必要があります。
このようにファイル再編成戦略をまとめるのは、一度限りのイベントではありません。しかし、いったん戦略を思い描き、実施したら、使用されているディスク・スペース量を減らし、生産効率をアップする上で、多くのメリットを生み出すことができます。