Hitachi

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


11.1.16 実表が格納されているデータ用DBエリアを変更する方法

実表が格納されているデータ用DBエリアを別のデータ用DBエリアに変更したい場合は,対象の実表をいったん削除したあとで再定義する必要があります。

メモ

インデクスが格納されているデータ用DBエリアを別のデータ用DBエリアに変更したい場合は,「11.3.8 インデクスが格納されているデータ用DBエリアを変更する方法」を参照してください。

次の手順に従って,実表が格納されているデータ用DBエリアを,別のデータ用DBエリアに変更してください。

なお,新たなデータ用DBエリアを追加する必要がある場合は,「11.10.1 データ用DBエリアを追加する方法」を参照してください。そのあとで,実表が格納されているデータ用DBエリアを変更してください。

手順

  1. 実表に格納されているすべてのデータを出力する

    adbexportコマンドで,実表に格納されているすべてのデータをファイルに出力してください。

    実表がマルチチャンク表の場合に,adbexportコマンドを実行する際の留意事項を次に示します。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がない場合

      留意事項は特にありません。実表に格納されているすべてのデータをファイルに出力してください。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がある場合

      実表に格納されているすべてのデータを,チャンク単位でファイルに出力する必要があります。チャンク単位でデータを出力しないと,チャンクの状態・構成を維持したまま,実表にデータを格納できません。そのため,チャンク数分,エクスポートを行ってください。

      チャンク単位でデータを出力する場合は,「11.4.5 チャンク単位にデータをエクスポートする方法」を参照してください。

  2. 実表の定義情報を確認する

    実表を定義したときのCREATE TABLE文の指定内容を確認してください。別のデータ用DBエリアに実表を定義する際に使用します。

    実表を定義したときのCREATE TABLE文の指定内容がわからない場合は,「付録B.22 ディクショナリ表の検索」の「(28) 実表の定義情報を調べる場合」を参照してください。ディクショナリ表を検索すると,実表を定義したときのCREATE TABLE文の指定内容が確認できます。

  3. 実表に定義されているインデクスの定義情報を確認する

    実表にインデクスを定義している場合,インデクスを定義したときのCREATE INDEX文の指定内容を確認してください。別のデータ用DBエリアに定義した実表に,インデクスを定義する際に使用します。

    インデクスを定義したときのCREATE INDEX文の指定内容がわからない場合は,「付録B.22 ディクショナリ表の検索」の「(29) インデクスの定義情報を調べる場合」を参照してください。ディクショナリ表を検索すると,インデクスを定義したときのCREATE INDEX文の指定内容が確認できます。

  4. 実表を削除する

    削除動作の指定を省略したDROP TABLE文で,実表を削除してください。

  5. 実表を再定義する

    CREATE TABLE文で,別のデータ用DBエリアに実表を定義してください。CREATE TABLE文を作成する際の留意事項を次に示します。

    • 手順2.で確認した実表を定義したときのCREATE TABLE文の指定内容を流用して,CREATE TABLE文を作成してください。

    • CREATE TABLE文のIN DBエリア名に,実表を格納する別のデータ用DBエリアのDBエリア名を指定してください。

  6. 実表にインデクスを定義する

    削除した実表にインデクスを定義していた場合,再定義した実表にCREATE INDEX文でインデクスを定義してください。CREATE INDEX文を作成する際の留意事項を次に示します。

    • 手順3.で確認したインデクスを定義したときのCREATE INDEX文の指定内容を流用して,CREATE INDEX文を作成してください。

  7. 実表にデータを格納する

    adbimportコマンドで,手順5.で定義した実表に,手順1.で出力したすべてのデータを格納してください。

    実表がマルチチャンク表の場合に,adbimportコマンドを実行する際の留意事項を次に示します。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がない場合

      adbimportコマンドには,-dオプションおよび-bオプションは指定しないでください。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がある場合

      手順1.でチャンク単位に出力したデータを,チャンク単位にインポートする必要があります。

      • 手順1.でカレントチャンクだったチャンクのデータは,必ず最後に格納してください。

      • 初に格納するデータの場合は,-dオプションおよび-bオプションを指定しないで,adbimportコマンドを実行してください。

      • 2回目以降に格納するデータの場合は,バックグラウンドインポートで格納してください。-bオプションを指定してadbimportコマンドを実行してください。手順1.でカレントチャンクだったチャンクのデータも,バックグラウンドインポートで格納してください。

  8. ビュー表の無効化を解除する

    手順4.で削除した実表を基表とするビュー表は無効化されます。そのため,実表の定義後に,ビュー表の無効化を解除する必要があります。「11.2.8 ビュー表の無効化を解除する方法」の「(6) 表を誤って削除してしまったことによってビュー表が無効化された場合」を参照して,ビュー表の無効化を解除してください。

これで,実表が格納されているデータ用DBエリアを,別のデータ用DBエリアに変更できます。

メモ
  • adbexportコマンドおよびadbimportコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。

  • DROP TABLE文,CREATE TABLE文およびCREATE INDEX文については,マニュアルHADB SQLリファレンスを参照してください。