11.1.18 実表が格納されているデータ用DBエリアを変更する方法
実表が格納されているデータ用DBエリアを別のデータ用DBエリアに変更したい場合は,対象の実表をいったん削除したあとで再定義する必要があります。
- メモ
-
インデクスが格納されているデータ用DBエリアを別のデータ用DBエリアに変更したい場合は,「11.3.8 インデクスが格納されているデータ用DBエリアを変更する方法」を参照してください。
次の手順に従って,実表が格納されているデータ用DBエリアを,別のデータ用DBエリアに変更してください。
なお,新たなデータ用DBエリアを追加する必要がある場合は,「11.11.1 データ用DBエリアを追加する方法」を参照してください。そのあとで,実表が格納されているデータ用DBエリアを変更してください。
手順
-
実表に格納されているすべてのデータを出力する
adbexportコマンドで,実表に格納されているすべてのデータをファイルに出力してください。
実表がマルチチャンク表の場合に,adbexportコマンドを実行する際の留意事項を次に示します。
-
マルチチャンク表のチャンクの状態・構成を維持する必要がない場合
留意事項は特にありません。実表に格納されているすべてのデータをファイルに出力してください。
-
マルチチャンク表のチャンクの状態・構成を維持する必要がある場合
実表に格納されているすべてのデータを,チャンク単位でファイルに出力する必要があります。チャンク単位でデータを出力しないと,チャンクの状態・構成を維持したまま,実表にデータを格納できません。そのため,チャンク数分,エクスポートを行ってください。
チャンク単位でデータを出力する場合は,「11.4.5 チャンク単位にデータをエクスポートする方法」を参照してください。
-
-
実表の定義情報を確認する
実表を定義したときのCREATE TABLE文の指定内容を確認してください。別のデータ用DBエリアに実表を定義する際に使用します。
実表を定義したときのCREATE TABLE文の指定内容がわからない場合は,「付録B.22 ディクショナリ表の検索」の「(29) 実表の定義情報を調べる場合」を参照してください。ディクショナリ表を検索すると,実表を定義したときのCREATE TABLE文の指定内容が確認できます。
-
実表に定義されているインデクスの定義情報を確認する
実表にインデクスを定義している場合,インデクスを定義したときのCREATE INDEX文の指定内容を確認してください。別のデータ用DBエリアに定義した実表に,インデクスを定義する際に使用します。
インデクスを定義したときのCREATE INDEX文の指定内容がわからない場合は,「付録B.22 ディクショナリ表の検索」の「(30) インデクスの定義情報を調べる場合」を参照してください。ディクショナリ表を検索すると,インデクスを定義したときのCREATE INDEX文の指定内容が確認できます。
-
実表を削除する
削除動作の指定を省略したDROP TABLE文で,実表を削除してください。
-
実表を再定義する
CREATE TABLE文で,別のデータ用DBエリアに実表を定義してください。CREATE TABLE文を作成する際の留意事項を次に示します。
-
手順2.で確認した実表を定義したときのCREATE TABLE文の指定内容を流用して,CREATE TABLE文を作成してください。
-
CREATE TABLE文のIN DBエリア名に,実表を格納する別のデータ用DBエリアのDBエリア名を指定してください。
-
-
実表にインデクスを定義する
削除した実表にインデクスを定義していた場合,再定義した実表にCREATE INDEX文でインデクスを定義してください。CREATE INDEX文を作成する際の留意事項を次に示します。
-
手順3.で確認したインデクスを定義したときのCREATE INDEX文の指定内容を流用して,CREATE INDEX文を作成してください。
-
-
実表にデータを格納する
adbimportコマンドで,手順5.で定義した実表に,手順1.で出力したすべてのデータを格納してください。
実表がマルチチャンク表の場合に,adbimportコマンドを実行する際の留意事項を次に示します。
-
マルチチャンク表のチャンクの状態・構成を維持する必要がない場合
adbimportコマンドには,-dオプションおよび-bオプションは指定しないでください。
-
マルチチャンク表のチャンクの状態・構成を維持する必要がある場合
手順1.でチャンク単位に出力したデータを,チャンク単位にインポートする必要があります。
-
手順1.でカレントチャンクだったチャンクのデータは,必ず最後に格納してください。
-
最初に格納するデータの場合は,-dオプションおよび-bオプションを指定しないで,adbimportコマンドを実行してください。
-
2回目以降に格納するデータの場合は,バックグラウンドインポートで格納してください。-bオプションを指定してadbimportコマンドを実行してください。手順1.でカレントチャンクだったチャンクのデータも,バックグラウンドインポートで格納してください。
-
-
-
ビュー表の無効化を解除する
手順4.で削除した実表を基表とするビュー表は無効化されます。そのため,実表の定義後に,ビュー表の無効化を解除する必要があります。「11.2.8 ビュー表の無効化を解除する方法」の「(8) 表を誤って削除してしまったことによってビュー表が無効化された場合」を参照して,ビュー表の無効化を解除してください。
これで,実表が格納されているデータ用DBエリアを,別のデータ用DBエリアに変更できます。
- メモ
-
-
adbexportコマンドおよびadbimportコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。
-
DROP TABLE文,CREATE TABLE文およびCREATE INDEX文については,マニュアルHADB SQLリファレンスを参照してください。
-