スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

13.2.4 表を再編成する前に

<この項の構成>
(1) LOB列が定義されている表を再編成する場合
(2) 抽象データ型が定義されている表を再編成する場合
(3) 大量データを格納した表を再編成する場合
(4) 満杯状態のRDエリア内の表を再編成する場合
(5) HiRDB Datareplicatorによるデータ連携をしている場合
(6) キャラクタ型スペシャルファイル上にアンロードデータファイルを作成する場合
(7) 再編成時に使用するファイルの容量について
(8) 再編成した後にすること

(1) LOB列が定義されている表を再編成する場合

LOB列構成基表とLOBデータを同時に再編成できます。また,LOB列構成基表だけを再編成したり,又はLOBデータだけを再編成したりできます。なお,LOB列構成基表とLOBデータを同時に再編成する場合は,pdrorgコマンド実行時に-jオプションを指定することをお勧めします。

(2) 抽象データ型が定義されている表を再編成する場合

抽象データ型の種類によって,再編成できる場合とできない場合があります。再編成可否を次の表に示します。

表13-1 抽象データ型が定義されている表の再編成可否

条件 再編成可否
プラグインが提供する抽象データ型 LOB属性なし 再編成できます。
LOB属性あり 抽象データ型列構成基表だけを再編成できます。
ユーザが定義した抽象データ型 再編成できません。

注※
プラグインにUNLOAD機能又はコンストラクタパラメタ逆生成機能がある場合,-jオプションを指定すれば表全体を再編成できます。

(3) 大量データを格納した表を再編成する場合

大量データを格納した表を再編成する場合,同期点指定の再編成を実施するかどうかを検討してください。

通常,表の再編成処理では全データの格納処理を完了するまでトランザクションを決着できません。このため,データベース再編成ユティリティ実行中はシンクポイントダンプを有効化できません。したがって,大量データの再編成処理中にHiRDBが異常終了すると,HiRDBの再開始処理に長い時間を必要とします。これを防ぐために,データ格納時(リロード処理時)に任意の件数で同期点を設定してトランザクションを決着できます。これを同期点指定の再編成といいます。

また,データベースの更新ログ取得方式がログ取得モード又は更新前ログ取得モードの場合,同期点指定の再編成中にユティリティが異常終了すると,異常終了直前にコミットした次のデータからデータロードを再開始するため,処理時間が短縮できます。

同期点指定の再編成をするには,データベース再編成ユティリティのoption文で同期点行数(何件データを格納したら同期点を取得するか)を指定してください。

注意
  1. この機能を適用しない場合よりも同期点処理が実行される分,処理性能が低下します。
  2. ユティリティが異常終了したとき,そのタイミングによって対処方法が異なります。異常終了時の対処方法については,「19.18 同期点指定の再編成実行中にユティリティが異常終了したときの対処方法」を参照してください。
  3. 表を複数のバックエンドサーバに横分割している場合,アンロードデータファイルを一元化してください(データベース再編成ユティリティで-gオプションを指定してください)。アンロードデータファイルを一元化しないと,ユティリティが異常終了した場合に対処方法が複雑になります。このときの対処方法については,「19.18.3 アンロードデータファイルを一元化しないときに異常終了した場合の対処方法(HiRDB/パラレルサーバ限定)」を参照してください。
  4. 同期点ごとに新規ページからデータの格納を開始するため,この機能を使用しないときに比べてデータを格納するために必要なページ数が多くなります。したがって,満杯状態の表を再編成する場合はこの機能を使用しないようにしてください。使用した場合,容量不足でデータベース再編成ユティリティがエラーになることがあります。
  5. 改竄防止表に対して同期点指定の再編成はできません。

(4) 満杯状態のRDエリア内の表を再編成する場合

表の再編成時,ページ内の未使用領域の比率はCREATE TABLEのPCTFREEオペランドの指定が適用されます。したがって,満杯状態のRDエリア内の表を再編成すると,表の再編成時にRDエリアの容量不足が発生することがあります。これを防ぐには,データベース再編成ユティリティ(pdrorgコマンド)のoption文でtblfree及びidxfreeオペランドを指定して,CREATE TABLEのPCTFREEオペランドで指定したページ内の未使用領域の比率を変更してください。

tblfreeオペランドには表の未使用領域の比率を指定します。idxfreeオペランドにはインデクスの未使用領域の比率を指定します。

なお,これはあくまで再編成前にRDエリアの拡張がすぐにできないときの暫定的な処置です。データの更新に備えて,CREATE TABLEのPCTFREEオペランドの値を考慮した再編成ができるように,データベース構成変更ユティリティ(pdmodコマンド)でRDエリアを拡張してください。

(5) HiRDB Datareplicatorによるデータ連携をしている場合

抽出側データべースに対してデータべース再編成ユティリティを実行する場合,-lオプションにはn又はpを指定してください(ログレスモード又は更新前ログ取得モードでデータべース再編成ユティリティを実行してください)。

ログ取得モードでデータべース再編成ユティリティを実行した場合,抽出側データべースに対して実行された一部の更新情報だけが反映側データべースに転送されるため,抽出側と反映側のデータべースの内容が不整合になります。

(6) キャラクタ型スペシャルファイル上にアンロードデータファイルを作成する場合

キャラクタ型スペシャルファイル上にアンロードデータファイルを作成する場合は,そのキャラクタ型スペシャルファイルをユティリティ用のHiRDBファイルシステム領域にしておいてください。ユティリティ用のHiRDBファイルシステム領域にするには,pdfmkfsコマンドの-kオプションにUTLを指定します。

(7) 再編成時に使用するファイルの容量について

ディスクの残容量に余裕があるのに,データベース再編成ユティリティ実行時にディスク容量不足を示す旨のメッセージが出力された場合は,次に示す原因が考えられます。

この場合,ラージファイルを使用するか,又はカーネルパラメタの値を変更してください。また,アンロードデータファイルを複数個指定しても対応できます。ただし,ラージファイルをサポートしていないOSの場合は,ディスクのパーティションのサイズを2ギガバイト以下にしないと,複数個のファイルを扱うことはできません。

(8) 再編成した後にすること

再編成した後に,必要があれば最適化情報収集ユティリティ(pdgetcstコマンド)を実行してください。最適化情報収集ユティリティの実行要否については,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。