11.4.20 レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更する方法
レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更するには,ALTER TABLE文を実行します。手順を次に示します。
- 重要
-
カラムストア表の場合は,レギュラーマルチチャンク表からアーカイブマルチチャンク表には変更できません。
手順
-
無効化されるビュー表の有無を確認する
レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更すると,処理対象表に依存するビュー表は無効化されます。そのため,レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更する前に,無効化されるビュー表があるかどうかを確認してください。無効化されるビュー表(依存するビュー表)を調べる場合は,「11.2.11 依存するビュー表を確認する方法」を参照してください。
もし,無効化されるビュー表がある場合は,レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更したあとで,ビュー表の無効化を解除する必要があります。
-
データ用DBエリア内に作成できるチャンク数を確認する
adbdbstatusコマンドで,レギュラーマルチチャンク表が格納されているデータ用DBエリアの「DBエリアのサマリ情報」を出力してください。そして,次の項目に出力される値が10以上であることを確認してください。
-
Creatable_chunks(DBエリア内に作成できるチャンク数の上限)
10未満の場合は,レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更できません。アーカイブマルチチャンク表に変更した際に,HADBサーバが自動的に定義するロケーション表とロケーション表のインデクスによって,チャンク数が使用されます。
- メモ
-
adbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスのadbdbstatus(データベースの状態解析)を参照してください。
-
-
アーカイブレンジ列として指定する列を検討する
レギュラーマルチチャンク表の構成列から,アーカイブレンジ列として指定する列を検討してください。アーカイブレンジ列として指定する列を検討する場合は,「5.2.5 アーカイブマルチチャンク表を定義する場合の考慮点【ローストア表】」の「(5) アーカイブレンジ列の指定」を参照してください。
-
アーカイブレンジ列として指定する列にレンジインデクスが定義されているかどうかを確認する
手順3.で,アーカイブレンジ列として指定する列を決めたあとで,アーカイブレンジ列に指定する列にレンジインデクスが定義されているかどうかを確認してください。レンジインデクスが定義されているかどうかを確認する場合は,「付録B.22 ディクショナリ表の検索」の「(28) アーカイブマルチチャンク表のアーカイブレンジ列に定義されたレンジインデクスを調べる場合」を参照してください。
-
レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更する
ALTER TABLE文で,レギュラーマルチチャンク表をアーカイブマルチチャンク表に変更してください。なお,手順4.の確認結果によってALTER TABLE文の指定方法が異なります。
-
アーカイブレンジ列として指定する列にレンジインデクスが定義されている場合
ALTER TABLE文のチャンクアーカイブ指定に,「IN DBエリア名」を指定しないでください。
ALTER TABLE文の実行が完了したら,手順7.に進んでください。
-
アーカイブレンジ列として指定する列にレンジインデクスが定義されていない場合
ALTER TABLE文のチャンクアーカイブ指定に,「IN DBエリア名」を指定してください。「IN DBエリア名」に指定したDBエリアに,HADBサーバが自動的に定義したレンジインデクスが格納されます。レンジインデクスは,アーカイブレンジ列として指定する列に定義されます。
ALTER TABLE文の実行が完了したら,手順6.に進んでください。
- メモ
-
ALTER TABLE文は,マニュアルHADB SQLリファレンスのALTER TABLE(表定義の変更)を参照してください。
-
-
HADBサーバが自動的に定義したレンジインデクスを再作成する
手順5.で,ALTER TABLE文のチャンクアーカイブ指定に「IN DBエリア名」を指定した場合は,対象のアーカイブマルチチャンク表に対して,adbidxrebuildコマンドを実行してください。adbidxrebuildコマンドを実行して,HADBサーバが自動的に定義したレンジインデクスを再作成します。
adbidxrebuildコマンドの実行が完了したら,手順7.に進んでください。
-
ビュー表の無効化を解除する
処理対象表に依存するビュー表がある場合は,ビュー表の無効化を解除してください。ビュー表の無効化を解除する場合は,「11.2.8 ビュー表の無効化を解除する方法」の「(1) ALTER TABLE文で表の種別を変更したことによってビュー表が無効化された場合」を参照してください。
これで,レギュラーマルチチャンク表から,アーカイブマルチチャンク表への変更が完了します。