11.20.3 ディクショナリ表およびシステム表を再編成する方法
ディクショナリ表(実表)およびシステム表(実表)を再編成する場合は,adbreorgsystemdataコマンドを実行します。
adbreorgsystemdataコマンドについては,マニュアルHADB コマンドリファレンスのadbreorgsystemdata(ディクショナリ表およびシステム表の再編成)を参照してください。
- 重要
-
ディクショナリ表(実表)およびシステム表(実表)の再編成処理中には,処理対象表を格納する各DBエリアに,「再編成前のデータ」と「再編成後のデータ」の2つのデータが一時的に存在します。
-
ディクショナリ表(実表)を再編成する場合,ディクショナリ表(実表)を格納するディクショナリ用DBエリアが該当します。
-
システム表(実表)を再編成する場合,システム表(実表)を格納するシステム表用DBエリアが該当します。
そのため,各DBエリアに対応するディスクに2つのデータを格納できるだけの空き容量がない場合は,ディクショナリ表(実表)またはシステム表(実表)を再編成できません。
-
- ■adbreorgsystemdataコマンドの実行例
-
この実行例では,システム表(実表)のSTATUS_CHUNKS表に対して,再編成を行います。また,adbreorgsystemdataコマンドがタイムアウトになるまでの時間として,300秒を指定します。
adbreorgsystemdata --timeout 300 -c table -f /home/adbmanager/reorg_file/unldpath.txt -n STATUS_CHUNKS- メモ
-
adbreorgsystemdataコマンドを実行する際,--timeoutオプションを指定することを推奨します。
adbreorgsystemdataコマンドを実行すると,通常は数十秒から数分程度で終了します。ただし,特定のSQL文やコマンドを実行している場合は,adbreorgsystemdataコマンドが待ち状態となります。そのため,adbreorgsystemdataコマンドの実行時間が長くなるおそれがあります。
adbreorgsystemdataコマンドでディクショナリ表(実表)の再編成を実行している間は,ほかのSQL文やコマンドは同時に実行できません。
また,adbreorgsystemdataコマンドでシステム表(実表)の再編成を実行している間は,adbimportコマンドやadbmergechunkコマンドなどは実行できません。adbreorgsystemdataコマンドの待ち状態については,「11.20.4 ディクショナリ表およびシステム表の再編成と排他制御」を参照してください。
adbreorgsystemdataコマンドの実行時間が長くなることで,システムの運用に支障が出る場合は,--timeoutオプションを指定してください。--timeoutオプションに指定した時間内でadbreorgsystemdataコマンドが終了しなかった場合は,再編成処理がキャンセルされます。
adbreorgsystemdataコマンドがキャンセルされた場合は,出力されたメッセージを確認したあとで,再度adbreorgsystemdataコマンドを実行してください。