名前
rdbgcdsi -- 指定されたDSIの再編成
形式(DSIの再編成)
rdbgcdsi -G -i データベース名.DSI名 -w 作業用ディレクトリパス名 [ {;作業用ディレクトリパス名}...] -u 中間退避ファイル格納先ディレクトリパス名 [{;中間退避ファイル格納先ディレクトリパス名}...] [ -f インデックス指定時の空き率] [ -k 再編成制御ファイル格納先ディレクトリパス名]
形式(DSIの拡張と再編成)
rdbgcdsi -E -i データベース名.DSI名 {{ -p 割付け要素種別, データベース名.データベーススペース名, 割付け量}... | -c } -w 作業用ディレクトリパス名 [ {;作業用ディレクトリパス名}...] -u 中間退避ファイル格納先ディレクトリパス名 [ {;中間退避ファイル格納先ディレクトリパス名}...] [ -f インデックス指定時の空き率] [ -k 再編成制御ファイル格納先ディレクトリパス名]
形式(失敗時の再実行)
rdbgcdsi -R -i データベース名.DSI名 [ -f インデックス指定時の空き率 ] [ { -p 割付け要素種別, データベース名.データベーススペース名, 割付け量}...] [ -w 作業用ディレクトリパス名 [ {;作業用ディレクトリパス名}...]] [ -k 再編成制御ファイル格納先ディレクトリパス名]
機能説明
DSIの再編成を行います。
また、DSIの容量を拡張します。
オプション
対象資源の再編成を行います。(Garbage collectionモード)
対象資源の拡張後、再編成を行います。(Expandモード)
再編成を行うDSI名を指定します。
なお、格納構造がOBJECTである表のDSIおよび関連するインデックスのDSIは指定することができません。
再編成対象がインデックスのDSIである場合は、格納スペースの空き率を百分率で指定します。
0から100までの値が指定できます。
作業用ファイルを格納するためのディレクトリのパス名を指定します。
作業用ディレクトリパス名に指定できる長さは、228バイトまでです。
パス名を相対パスで指定した場合は、絶対パスに変換したときの長さが228バイト以内でなければなりません。
作業用領域として必要な容量の見積りを以下に示します。
表のDSI指定の場合は以下のサイズを見積もります。
SEQUENTIALの場合
表に定義されているすべてのインデックスのDSIのうちソート作業域のサイズが最大のもののサイズで見積もります。
表にインデックスが定義されていない場合は作業用領域を使用しません。
ソート作業域のサイズ = (Size1 * 2 + 14) * レコード件数
Size1 : インデックスを構成する列の長さの合計サイズ
RANDOMの場合
表データのソート作業域のサイズで見積もります。
ソート作業域のサイズ = (Size2 + 36 + Size3 * 2) * レコード件数 + Size4 / 32 / 1024 * 16
Size2 : 表を構成する列の長さの合計サイズ
Size3 : クラスタキーを構成する列の長さの合計サイズ
Size4 : 表のDSIのサイズ
インデックスのDSI指定の場合は以下のサイズを見積もります。
BTREEで表のDSIがSEQUENTIALの場合
ソート作業域のサイズ = (Size5 * 2 + 14) * レコード件数
Size5 : インデックスを構成する列の長さの合計サイズ
BTREEで表のDSIがRANDOMでインデックスを構成する列が一意性制約に対応している場合
ソート作業域のサイズ = (Size6 * 2 + Size7) * レコード件数
Size6 : インデックスを構成する列の長さの合計サイズ
Size7 : クラスタキーを構成する列の長さの合計サイズ
BTREEで表のDSIがRANDOMでインデックスを構成する列が一意性制約に対応しない場合
ソート作業域のサイズ = (Size8 * 2 + Size9 * 2) * レコード件数
Size8 : インデックスを構成する列の長さの合計サイズ
Size9 : クラスタキーを構成する列の長さの合計サイズ
XMLの場合
作業用領域は使用しません。
上記のうちSize1、Size3、Size5、Size6、Size7、Size8およびSize9において、さらに以下の見積りが必要です。
列のデータ型がCHARACTER(VARYING含む)またはNATIONAL CHARACTER(VARYING含む)の場合、その列の長さを1.5倍にします。
-pオプションには常に以下の3つを指定します。
割付け要素種別
領域拡張を行うDSI割付け要素名を指定します。
PRIME:対象が表のDSIで格納構造がRANDOMのプライム部の場合に指定します。
OVERFLOW:対象が表のDSIで格納構造がRANDOMのオーバフロー部の場合に指定します。
DATA:対象が表のDSIで格納構造がSEQUENTIALの場合に指定します。
BASE:対象がインデックスのDSIでベース部の場合に指定します。
INDEX:対象がインデックスのDSIでインデックス部の場合に指定します。
データベース名.データベーススペース名
拡張先のデータベーススペース名を指定します。
データベーススペースは、すでに獲得済である必要があります。
なお、1つの割付け要素を複数のデータベーススペースに割り付けるには、その割付け要素種別を指定した-pオプションを、割り付けるデータベーススペースの数だけ指定します。
スケーラブルログ運用を行っている場合、データベーススペースは処理対象のDSIを割り付けたデータベーススペースと同一のロググループでなければなりません。
また、データベーススペース名を複数指定する場合は、同一ロググループのデータベーススペースでなければなりません。
割付け量
当該DSIに割付ける量をK(キロ)あるいはM(メガ)単位で指定します。
指定できる値は、2097151K以下または2047M以下です。
自動容量拡張またはDSI変更文で拡張された領域をいったんすべて返却した後、再編成します。
このとき、容量不足となった場合は、必要な容量だけrdbalmdsiコマンドの指示に従って自動容量拡張を実施します。
中間退避ファイル格納先パス名を指定します。中間退避ファイルには指定されたDSIの内容を一時的に格納します。
中間退避ファイル格納先ディレクトリパス名に指定できる長さは、128バイトまでです。
パス名を相対パスで指定した場合は、絶対パスに変換したときの長さが128バイト以内でなければなりません。
中間退避ファイル格納領域として必要な容量の見積りを以下に示します。
表のDSI指定の場合
中間退避ファイル格納領域 = 表のDSIのサイズ
インデックスのDSI指定の場合
XMLの場合に以下の値で見積もります。BTREEの場合は不要です。
中間退避ファイル格納領域 = インデックスのDSIのサイズ
再編成制御ファイル格納先パス名を指定します。
再編成制御ファイルには、再編成処理の制御情報を一時的に格納します。
スタンバイ機能を利用した運用時に本コマンドを実行する場合は、本オプションを必ず指定してください。
また、ディレクトリパス名には、切替えディスクを指定してください。
再編成制御ファイル格納先ディレクトリパス名に指定できる長さは、128バイトまでです。
パス名を相対パスで指定した場合は、絶対パスに変換したときの長さが128バイト以内でなければなりません。
再編成処理に失敗した場合の再実行要求が行われます。
使用例
在庫管理DBに属する在庫表DSIの再編成を行います。
rdbgcdsi -G -i 在庫管理DB.在庫表DSI -w c:\tmp -u c:\home\testdir
在庫管理DBに属する在庫表DSIの拡張と再編成を行います。
rdbgcdsi -E -i 在庫管理DB.在庫表DSI -p DATA,在庫管理DB.DBSP_1,10M -w c:\tmp -u c:\home\testdir
終了ステータス
以下の終了ステータスが返されます。
0 : 正常終了
0以外 : 異常終了
注意
本コマンドは、Symfoware/RDBが停止状態では実行することができません。
本コマンドは、データの整合性を保証するために、異常終了した場合は対象DSIを閉塞することがあります。異常となった原因を取り除いた後にrdbinfコマンドで閉塞が行われていることを確認し、再実行モード(-Rオプション)で実行してください。
中間退避ファイルは本コマンドの処理中に生成され、処理終了時に削除されます。また、本コマンド処理中に異常が発生した場合、再実行モードによる本コマンドの実行に備えて削除されずに残っている場合があります。本コマンドの異常終了により残った中間退避ファイルは再実行モードによる本コマンドの実行、もしくは本コマンドの再実行により削除されます。
本コマンド異常終了時に残った中間退避ファイルが削除された場合には、本コマンドの再実行モードは実行できません。再実行モードによる本コマンドの実行を行う場合には、中間退避ファイルの削除は行わないでください。
-fオプションによるインデックスの空き率の指定は、-iオプションで、インデックスのDSIまたはSEQUENTIAL構造の表のDSIを指定した場合に有効です。それ以外の場合には、無視されます。
-Gオプションまたは-Eオプションを指定したとき、-fオプションを省略すると、0を指定したのと同じになります。
-iオプションでSEQUENTIAL構造の表のDSIを指定した場合、関連するすべてのインデックスのDSIについての空き率は、-fオプションの値になります。インデックスのDSIごとに空き率を変更する場合は、表のDSIの再編成を実施した後、インデックスのDSIを再編成してください。
-fオプションによって指定されるインデックスの空き率の指定値によっては対象DSIが容量不足となり、閉塞される場合があります。この場合、再実行モードによる実行時に適正なインデックスの空き率を指定して再実行してください。
本コマンドの実行で異常が発生した後の再実行モードでは、-fオプション、-pオプション、または-wオプションを省略すると、それぞれのオプションの扱いは、異常が発生したときの内容と同じになります。
-Gオプションによる実行で異常が発生した後の、再実行モードによる本コマンドの実行では、-pオプションを指定することはできません。
-Eオプションによる本コマンドの実行時には、自動容量拡張機能またはDSI変更文により拡張された領域はすべて返却されます。したがって拡張量の指定によっては容量不足となり本コマンドが異常終了する場合があります。この場合、rdbprtコマンドによりDSIの容量を確認して、すでに自動容量拡張またはDSI変更文で拡張されている領域の容量を考慮して、必要な追加容量の見積りを行ってください。再実行モードによる本コマンドの実行時には-pオプションにより不足分の領域を指定して実行してください。
DSIのメモリ常駐を行っているDSIに対して、-Eオプションを指定して本コマンドを実行することはできません。DSIのメモリ常駐を解除してから本コマンドを実行してください。
処理対象の資源がインデックスのDSIの場合に、-pオプション指定で拡張をともなう再編成を行う場合には、ベース部とインデックス部の両方を指定してください。各割付け要素に対して-pオプションでデータベーススペース名および割付け量の指定を行ってください。
割付け量は、ページ長以上の容量が必要です。
本コマンドを実行する前に、rdbalmdsiコマンドで候補データベーススペース内の空き容量の合計サイズを減らすような変更を行った場合、-cオプション指定で自動容量拡張またはDSI変更文により拡張された領域返却の実行時に容量不足となることがありますので注意してください。
-cオプション指定で自動容量拡張またはDSI変更文により拡張された領域返却の実行中に、同じ候補データベーススペースを使用する他のDSIの自動容量拡張を実行すると、容量不足となることがありますので注意してください。
-cオプション指定の自動容量返却処理が容量不足で失敗した後に、-Rオプション指定で再実行を行う場合には、-pオプションを指定することはできません。 rdbalmdsiコマンドで候補データベーススペースの容量を確保して、再実行してください。
-Eオプション指定よりDSIの拡張と再編成を行う場合、-pオプションで指定したデータベーススペースに対するALLOCATE権が必要です。
格納構造がOBJECTの表のDSIおよび関連するインデックスのDSIに対して本コマンドを実行することはできません。 DSIの再編成だけを行う場合は、rdbunlコマンドにより作成したアンロードファイルを入力としてrdbsloaderコマンドを実行してください。また、DSIの拡張と再編成を行う場合は、rdbunlコマンドでデータをバックアップした後、DSIの削除および再定義を行い、rdbsloaderコマンドで再編成してください。
スタンバイ機能を利用した運用を行っている場合は、システムの切替えに備えて、中間退避ファイル格納先ディレクトリパス名には、切替えディスクを指定してください。また、再編成制御ファイル格納先ディレクトリパス名も、切替えディスクを指定してください。