10.3.2 RDエリアの再初期化
(1) 注意事項
-
SDBデータベース格納定義の格納レコード用RDエリアに指定したRDエリアに対して,RDエリアの再初期化でページ長を変更する場合は,変更前のページ長以上の値を指定してください。SDBデータベース定義に,変更後のページ長に収まらないレコード長のレコード型が存在する場合,該当するレコードの格納時にエラーとなります。
-
SDBデータベース格納定義でSUBPAGE NUMBER句を指定したレコード型を格納するRDエリアに対しては,RDエリアの再初期化でページ長を変更しないでください。ページ長を変更した場合,該当するレコード型のレコードの格納時や検索時などにエラーとなります。
-
SDBデータベースを格納するRDエリアに対しては,without lock tableオペランドを指定した再初期化を行わないでください。without lock tableオペランドを指定した場合,エラーとなります。
(2) RDエリアの再初期化後のレコードおよびインデクスの状態
-
レコードを格納しているRDエリアを再初期化した場合
再初期化したRDエリア内の全レコードが削除されます。また,レコード型に定義されているインデクスのデータも同時に削除されます。
SDBデータベースを横分割している場合は,再初期化対象のRDエリアに格納されているレコードだけが削除されます。このとき,削除されたレコードに対応するインデクスのデータも同時に削除されます。
- 参考
-
RDエリアを再初期化した場合,レコード型およびインデクスの定義情報は削除されずに引き継がれます。
-
インデクスを格納しているRDエリアを再初期化した場合
再初期化したRDエリア内のインデクスの全データが削除されます。ただし,レコードは削除されません。
SDBデータベースを横分割している場合は,再初期化対象のRDエリアに格納されているインデクスのデータだけが削除されます。レコードは削除されません。
このように,インデクスを格納しているRDエリアを再初期化すると,レコードとインデクスの整合性が取れなくなります。この状態をインデクスの未完状態といいます。未完状態のインデクスは使用できないため,基本的にはインデクスを格納しているRDエリアだけを再初期化しないようにしてください。
インデクスを格納しているRDエリアだけを再初期化してしまった場合,インデクスを格納しているRDエリアを閉塞解除かつオープン状態にして,レコードを格納しているRDエリアをpdmodコマンドで再初期化するか,またはpdsdblodコマンドでインデクスを再作成してください。
RDエリアの再初期化後のレコードおよびインデクスの状態を次の図に示します。
(3) 実行結果リストの出力
RDエリアの再初期化を実行した場合,実行結果リストが出力されます。実行結果リストに出力される情報については,「HiRDB コマンドリファレンス」の「RDエリアの再初期化」の「実行結果リストの出力」を参照してください。
なお,「HiRDB コマンドリファレンス」の「実行結果リストの出力」で説明されている次の出力情報の表識別子には,レコード型名が表示されます。
- 4.再初期化したRDエリア内の表識別子
-
認可識別子.表識別子
- 注
-
上記の「4.」は,「HiRDB コマンドリファレンス」の「実行結果リストの出力」の説明で使用している項番です。