Hitachi

Hitachi Advanced Data Binder コマンドリファレンス


16.5.3 処理対象表がシングルチャンク表の場合

シングルチャンク表に定義されたB-treeインデクス(主キーに対応するB-treeインデクスを含む),またはテキストインデクスを再作成している場合,adbidxrebuildコマンドの再実行機能を使用して,B-treeインデクスおよびテキストインデクスの作成処理からインデクス再作成処理を再開できることがあります。

〈この項の構成〉

(1) 再実行前の注意点

adbidxrebuildコマンドが異常終了したときと同じHADBユーザでadbidxrebuildコマンドを再実行すると,再実行機能が自動的に適用されます。特別な操作はありません。

なお,adbidxrebuildコマンドの再実行時にコマンドオプションおよびインデクス再作成オプションを変更する場合は,「16.5.5 再実行時にコマンドオプションおよびインデクス再作成オプションを変更する場合」を参照してください。

重要

(2) 再実行機能の適用可否(シングルチャンク表の場合)

adbidxrebuildコマンドの中断タイミングによる再実行機能の適用可否を次の表に示します。

なお,データベースの回復方法はどの時点で中断が発生しても同じになります。

表16‒3 adbidxrebuildコマンドの中断タイミングによる再実行機能の適用可否(シングルチャンク表の場合)

中断のタイミング※1

表データの検索中

ソート処理中

B-treeインデクスとテキストインデクスの作成中※2

再実行機能の適用可否

適用されません。※3

表の状態

次のどちらかの状態です。

  • 更新不可状態

  • adbidxrebuildコマンド実行前の状態

インデクスの状態

B-treeインデクス,テキストインデクス,およびレンジインデクスは,次のどちらかの状態です。

  • 未完状態

  • adbidxrebuildコマンド実行前の状態

再実行機能の適用可否

適用されます。※4

表の状態

更新不可状態です。

インデクスの状態

B-treeインデクスおよびテキストインデクスは未完状態です。

レンジインデクスの再作成は完了しています(レンジインデクスの未完状態は解除されます)。

注※1

中断のタイミングは,次に示すように出力されたメッセージで確認できます。

[図データ]

注※2

KFAA80204-Iメッセージ(リターンコードが0または4)が出力されている場合は,インデクス再作成処理はすべて完了しています。この場合,adbidxrebuildコマンドの再実行は不要です。

KFAA80204-Iメッセージが出力されていない場合は,次のコマンドを実行して出力結果(表のサマリ情報)の2行目を確認してください(出力結果の1行目は列のタイトルです)。

adbdbstatus -c table -n adbidxrebuildコマンドが中断した表名

adbidxrebuildコマンドが中断した表名は,「スキーマ名.表識別子」の形式で指定します。

Command_status列(17列目)の値がabort,かつRerun_command列(18列目)の値がadbidxrebuildのとき

[図データ]

インデクス再作成処理が完了していません。adbidxrebuildコマンドを再実行してください。

Command_status列(17列目)およびRerun_command列(18列目)に値が出力されていないとき

[図データ]

インデクス再作成処理が完了しています。adbidxrebuildコマンドの再実行は不要です。

注※3

adbidxrebuildコマンドの再実行時,インデクス再作成処理を最初から行います。

ただし,adbidxrebuildコマンドの再実行前に,再作成対象のインデクスをすべて削除した場合は,コマンドの終了処理だけ実行します。

注※4

adbidxrebuildコマンドの再実行時,B-treeインデクスおよびテキストインデクスの作成処理からインデクス再作成を再開します。

ただし,次に示す場合は,表データの検索からインデクス再作成処理を再開します。

  • --create-temp-fileオプションを指定してadbidxrebuildコマンドを実行する場合

  • adbimportコマンド中断後に,--create-temp-fileオプションを指定して実行したadbidxrebuildコマンドが中断した場合

また,adbidxrebuildコマンドの再実行前に,再作成対象のインデクスをすべて削除した場合は,コマンドの終了処理だけ実行します。