IBM Support

[Db2] NSE の空きスペース不足への対処方法

Question & Answer


Question

NSE (Net Search Extender) の更新処理が、空きスペース不足により CTE0310 エラーとなりました。 NSE の空きスペース不足への対処方法にはどのようなものがありますか。

Answer

NSE は、索引更新前にシステム上の空きスペースのチェックを行っており、チェックの結果 CTE0310 エラーになる場合があります。CTE0310 エラーになる条件について、詳しくは [Db2] CTE0310 エラーで索引更新ができない を確認してください。

CTE0310 で空きスペース不足となる場合の対処方法について、一般的なアプローチをいくつかご案内します。


ファイルシステム・スペースの拡張

最も確実な方法です。

CTE0310 が繰り返し発生する場合、そして DROP INDEX などの対処方法が採用できず、運用側での工夫も出来ない場合には、ディスク増設などでスペースの拡張が必要です。


索引の再作成

物理スペースの拡張や構成の変更が困難な場合でも検討が可能な方法です。

索引再作成は、DROP INDEX コマンド、CREATE INDEX コマンド、UPDATE INDEX コマンドを順に実施します。再編成と同等の効果があるため、フラグメントの解消により空きスペースを作ることができる可能性があります。また、DROP INDEX が実施されたタイミングで、いくつかのメタ・データとキャッシュ・データがクリアされ、ある程度のスペースを確保ができる可能性があります。

再作成により、どの程度の空きスペースが生成されるかの見積りは困難です。


作業ディレクトリーおよび索引ディレクトリーの別のファイル・システムへの移動

多数の索引を同一のファイル・システムで設定されている場合に効果的な方法です。

NSE が行う空きスペースのチェックは、処理対象の索引があるファイル・システムのみが対象となります。作業ディレクトリーおよび索引ディレクトリーを別のファイル・システムに変更することで、対処方法となる可能性があります。

移動には、以下のように ALTER INDEX コマンドを用います。

手順例:

  1. 対象のデータベースに接続をし、現在の状態を確認します

    db2 connect to <データベース名>
  2. 作業ディレクトリーおよび索引ディレクトリーを確認します

    db2 "select indexname, indexdirectory, workdirectory from db2ext.ttextindexes"

    出力結果から、対象索引の INDEXDIRECTORY および WORKDIRECTORY の現在の状態を確認します。
  3. 作業ディレクトリーおよび索引ディレクトリーを移動します

    ALTER INDEX コマンドを用いて次のように行います。

    db2text "ALTER INDEX 対象索引名 FOR TEXT INDEX DIRECTORY 新しい索引ディレクトリー WORK DIRECTORY 新しい作業ディレクトリー

    実行例:
    db2text "ALTER INDEX IDX_CATEORY_NAME FOR TEXT INDEX DIRECTORY /newfs/nse/db2inst1/proddb1 WORK DIRECTORY /newfs/nse/db2inst1/proddb1/work"

    もし、索引ディレクトリーないしは作業ディレクトリーのどちらか一方を変更する場合には、変更対象のみを指定して ALTER INDEX を実行します。

    以下は作業ディレクトリーのみ変更する例です。

    実行例:
    db2text "ALTER INDEX targetidx FOR WORK DIRECTORY /newfs/nse/db2inst1/proddb1/work"
  4. ALTER INDEX コマンドの実行完了後、変更が反映されていることを確認します

    db2 "select indname, indexdirectory, workdirectory from db2ext.textindexes"
    db2 "select indexname, indexdirectory, workdirectory from db2ext.ttextindexes"

    以上の SELECT ステートメントの出力結果から、対象索引の INDEXDIRECTORY および WORKDIRECTORY の設定値が正しく変更されたかを確認します。


索引ディレクトリーおよび作業ディレクトリーの ALTER INDEX による変更反映は即時に開始されます。
ALTER INDEX の実行は影響が大きい場合がありますので、以下の注意点は必ずご確認ください。

注意点:
  • ALTER INDEX 実行中は、索引にアクセスが無い状態にしてください。アクセスがあった場合、ALTER INDEX がエラー終了する可能性があります。
  • ALTER INDEX のトラブルに備え、索引データのバックアップ (該当ファイル全てのコピー) と関連のデータベースのバックアップを事前に取得していただくことが推奨されます。
  • 索引データおよび作業データの移動を行うため、それらのデータ・サイズが大きい場合には、システム・パフォーマンスへの大きな影響がある可能性があります。
  • 作業ディレクトリーと索引ディレクトリーは、同一のファイル・システムに配置することが強く推奨されます。両者の存在するファイル・システムが異なる場合、作業ディレクトリーのデータを索引ディレクトリーのデータに変換する際に、リネームではなく索引ディレクトリーへ物理的にコピーする必要が発生するため、すべての索引更新によるパフォーマンス低下が発生することが考えられます。


以下の Knowledge Center のページにある関連情報および注意点もご確認ください。

SKIPDISKSPACECHECK オプションの利用

CTE0310 は索引更新の事前チェックで戻されるエラーです。この事前チェックは、UDATE INDEX コマンド実行時に SKIPDISKSPACECHECK オプションを指定することでスキップすることが可能です。

SKIPDISKSPACECHECK オプションは v9.7 においては、フィックスパック 5 以降の実装となり、それ以前のフィックスパックでは使用することができません。
事前チェックを行わず、索引更新中にスペース不足となった場合には、索引ファイルが破損する可能性がありますので、SKIPDISKSPACECHECK オプションの利用は注意が必要です。通常は SKIPDISKSPACECHECK オプションは使用せず、前述の別な方法の検討が推奨されます。



運用上の考慮点

NSE は Db2 バージョン 9.7 にて推奨されない機能となっており、将来的に廃止される可能性があります。

DB2 サーバーのアップグレードに影響を与える、推奨されないか廃止された機能 (v9.7)
DB2 サーバーのアップグレードに影響を与える、推奨されないか廃止された機能 (v10.1)
DB2 サーバーのアップグレードに影響を与える、推奨されないか廃止された機能 (v10.5)
DB2 サーバーのアップグレードに影響を与える、推奨されないか廃止された機能 (v11.1)

Net Search Extender の非推奨


関連情報

[DB2 LUW] Net Search Extender 問題発生時の取得資料
Net Search Extender Knowledge Collection
パスポート・アドバンテージによく寄せられる質問

お問合せ先
技術的な内容に関して、サービス契約のもと IBM サービス・ラインにお問い合わせください。
IBM サービス・ライン

[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Extenders - Net Search","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"9.7;10.1;10.5;11.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg22012848