Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


13.8.1 実表が更新不可状態になった場合

次に示すコマンドが中断した場合,表の情報とインデクスの情報との不整合が原因で,処理対象の実表が更新できない状態になることがあります。これを,実表の更新不可状態といいます。

■対象のコマンド
  • adbimportコマンド

  • adbidxrebuildコマンド

  • adbunarchivechunkコマンド

更新不可状態の実表に対して,次に示す操作を行うとエラーになります。

■エラーになる操作
  • DELETE文,INSERT文,UPDATE文およびPURGE CHUNK文の実行

  • 定義系SQLの実行

  • adbmergechunkコマンドの実行

  • adbchgchunkstatusコマンドの実行

  • adbchgchunkcommentコマンドの実行

  • adbimportコマンドの実行※1

  • adbidxrebuildコマンドの実行※1

  • adbarchivechunkコマンドの実行

  • adbunarchivechunkコマンドの実行※2

注※1

adbunarchivechunkコマンドが中断して,実表が更新不可状態になった場合にエラーになります。adbimportコマンドまたはadbidxrebuildコマンドが中断して,実表が更新不可状態になった場合はエラーになりません。

注※2

adbimportコマンドまたはadbidxrebuildコマンドが中断して,実表が更新不可状態になった場合にエラーになります。adbunarchivechunkコマンドが中断して,実表が更新不可状態になった場合はエラーになりません。

参考

TRUNCATE TABLE文は実行できます。実表の行データはすべて削除されるため,実表の更新不可状態は解除されます。

〈この項の構成〉

(1) 実表の更新不可状態を解除する方法

実表の更新不可状態を解除する手順を次に示します。

手順

  1. 対象の実表が更新不可状態かどうかを確認する

    実表の更新不可状態は,adbdbstatusコマンドで確認できます。「9.8.2 実表の状態や使用量を確認したい場合」を参照してください。

    実表の更新不可状態の場合,手順2.に進んでください。

  2. 実表の更新不可状態を解除する

    中断したコマンドを再実行してください。

    • adbimportコマンドが中断した場合

      adbimportコマンドを再実行してください。詳細については,マニュアル「HADB コマンドリファレンス」の「adbimport(データのインポート)」の「adbimportコマンドが異常終了したときの対処方法(システムログを取得している場合)」,または「adbimportコマンドが異常終了したときの対処方法(システムログを取得していない場合)」を参照してください。

    • adbidxrebuildコマンドが中断した場合

      adbidxrebuildコマンドを再実行してください。詳細については,マニュアル「HADB コマンドリファレンス」の「adbidxrebuild(インデクスの再作成)」の「adbidxrebuildコマンドが異常終了したときの対処方法(システムログを取得している場合)」,または「adbidxrebuildコマンドが異常終了したときの対処方法(システムログを取得していない場合)」を参照してください。

    • adbunarchivechunkコマンドが中断した場合

      adbunarchivechunkコマンドを再実行してください。詳細については,マニュアル「HADB コマンドリファレンス」の「adbunarchivechunk(チャンクのアンアーカイブ)」の「adbunarchivechunkコマンドが異常終了したときの対処方法」を参照してください。

    再実行したコマンドが正常終了すると,表の情報とインデクスの情報との不整合が解消されて,更新不可状態が解除されます。

    コマンドの再実行時にエラーが発生した場合は,「13.8.1(2) コマンドの再実行時にエラーが発生したときの対処方法」を参照してください。

(2) コマンドの再実行時にエラーが発生したときの対処方法

コマンドの再実行時,中断したコマンドが作成した作業用一時ファイルまたはコマンドステータスファイルにアクセスできないことが原因で,エラーが発生する場合があります。エラーが発生した場合,次に示すメッセージがメッセージログファイルに出力されているかどうかを確認してください。

上記のメッセージが出力されているかどうかによって対処が異なります。上記以外のメッセージが出力されている場合は,出力されたメッセージに従って対処してください。対処が完了すると,実表の更新不可状態が解除されます。

(3) 更新不可状態の実表を検索した場合

更新不可状態の実表は,SELECT文で検索できます。ただし,中断したコマンドによって検索結果が異なります。

■adbimportコマンドの場合

adbimportコマンド実行時の-dオプションの指定有無によって,検索結果が異なります。

-dオプションを指定しなかった場合

adbimportコマンド実行前の実表に対して検索した場合と同じ結果が返却されます。

-dオプションを指定した場合

インデクスを使用しないSELECT文,およびレンジインデクスを使用したSELECT文の検索結果は,0件になります。

また,B-treeインデクスまたはテキストインデクスを使用したSELECT文は,エラーとなります。

■adbidxrebuildコマンドの場合

再作成が完了していないB-treeインデクス,テキストインデクスまたはレンジインデクスを使用したSELECT文を実行すると,インデクスの未完状態によって,エラーとなります。

■adbunarchivechunkコマンドの場合

adbunarchivechunkコマンド実行前の実表に対して検索した場合と同じ結果が返却されます。