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

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

13.13.1 例題(境界値指定の場合)

表の分割格納条件を変更する手順(境界値指定の場合)を説明します。

なお,表の分割格納条件を変更する前にバックアップを取得してください。

<この項の構成>
(1) 例題1(分割時の基本的な運用)
(2) 例題2(分割前のRDエリアを分割後に使用してデータを削除しないで分割する運用)
(3) 例題3(分割対象のRDエリアがほかの境界値で使用されている場合の運用)
(4) 例題4(統合前の一つのRDエリアを統合後のRDエリアとして使用する場合の運用)
(5) 例題5(統合前のRDエリアを統合後のRDエリアとして使用しない場合の運用)
(6) 例題6(統合対象のRDエリアがほかの境界値で使用されている場合の運用)

(1) 例題1(分割時の基本的な運用)

ある格納範囲のRDエリアの空き容量が不足したため,新たなRDエリアを用意してデータの格納範囲を分割する場合の運用について説明します。分割後のRDエリアは,元々使用していたものを使用しても,すべて新たなRDエリアを用意してもかまいません。横分割表の分割時の基本的な運用の例(元々使用していたものを使用)を説明します。

[図データ]

注 1.〜3.は,手順の項番に対応しています。

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で格納条件を変更するRDエリア内の表データ(R02)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。
  2. ALTER TABLEで分割したい境界値を分割します。このとき,分割対象のRDエリア(R02,RI02)のデータは削除されます。
  3. 分割した境界値を格納するRDエリアに対して,1.で作成したアンロードデータファイルを入力ファイルとして,分割後のすべてのRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。
    アンロードデータファイル中には,分割後の格納条件に合わないデータが含まれているため,エラーデータ情報が出力されます。エラーデータ情報が不要な場合は,option文のdivermsg=offを指定して,エラーデータ情報の出力を抑止します。
  4. データロードした後のデータ件数を確認します。詳細は,「13.13.9 分割・統合後のデータ件数の確認」を参照してください。
  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

(2) 例題2(分割前のRDエリアを分割後に使用してデータを削除しないで分割する運用)

時系列に増加するRDエリア内のデータに対して,今後のために新たなRDエリアを用意しておく運用について説明します。この場合,分割対象のRDエリアには,分割後の境界値より大きいデータが格納されていないことが前提となります。

分割前のRDエリアを分割後に使用してデータを削除しないで分割する運用の例を説明します。この例は,登録日を分割キーとしている表であり,R03には2005年以降のデータが格納されていないことが前提です。この表に対して2005年以降のデータを格納する新たなRDエリアを用意する場合の運用例です。

[図データ]

注 1.〜2.は,手順の項番に対応しています。

〈手順〉
  1. 分割対象の境界値を含むRDエリアが分割後の格納条件のデータしかないことを確認します(SELECT MAX(分割キー列名) FROM 表名 WHERE 分割キー列名>分割後の境界値)。分割後の格納条件以外のデータ(2005年以降のデータ)がある場合は,「13.13.1(1)例題1(分割時の基本的な運用)」で実施してください。
    この手順を実施しなかった結果,分割後の格納条件に合わないデータが残った場合の回復手順については,「13.13.10(2)分割後の格納条件に合わないデータが残った場合の回復手順」を参照してください。
  2. ALTER TABLEで分割したい境界値を分割します。このとき,WITHOUT PURGEを指定します。
  3. 2.で無効になった,ルーチン,トリガをALTER ROUTINEで再作成します。

(3) 例題3(分割対象のRDエリアがほかの境界値で使用されている場合の運用)

分割対象のRDエリアがほかの境界値でも使用されている場合,ほかの境界値のデータも削除されます。このため,分割対象のRDエリアがほかの境界値でも使用されている場合,分割前にデータベース再編成ユティリティ(pdrorg)でアンロードしたデータをデータベース作成ユティリティ(pdload)でデータロードするときに注意が必要です。

分割対象のRDエリアがほかの境界値で使用されている場合の運用例を説明します。

[図データ]

注 1.〜3.は,手順の項番に対応しています。

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で格納条件を変更するRDエリア内の表データをデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。このとき,'2002-12-31'以前のデータもアンロードされます。
  2. ALTER TABLEで分割したい境界値を分割します。このとき,分割対象のRDエリア(R01,RI01)のデータは('2002-12-31'以前のデータも)削除されます。
  3. 分割した境界値を格納するRDエリアに対して,1.で作成したアンロードデータファイルを入力として,分割後のすべてのRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。このとき,R01のデータも2.の時点でデータが削除されているため,R01に対してもデータロードする必要があります。
    アンロードデータファイル中には,分割後の格納条件に合わないデータが含まれているため,エラーデータ情報が出力されます。エラーデータ情報が不要な場合は,option文のdivermsg=offを指定して,エラーデータ情報の出力を抑止します。
  4. データロードした後のデータ件数を確認します。詳細は,「13.13.9 分割・統合後のデータ件数の確認」を参照してください。
  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

(4) 例題4(統合前の一つのRDエリアを統合後のRDエリアとして使用する場合の運用)

ある連続した格納範囲のRDエリアに空き容量が多いため,一つのRDエリアにデータの格納範囲を統合する場合の運用について説明します。統合後のRDエリアは,統合前の一つのRDエリアを使用しても使用しなくてもかまいません。

統合前の一つのRDエリアを統合後のRDエリアとして使用する場合の運用例を説明します。

[図データ]

注 1.〜3.は,手順の項番に対応しています。

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で統合対象のRDエリアのうち,統合後に使用しないすべてのRDエリア内の表データ(R03,R04)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。
  2. ALTER TABLEで統合したい境界値を統合します。このとき,R02は統合後もそのまま使用するため,WITHOUT PURGEを指定します。
  3. 統合した境界値を格納するRDエリアに対して,1.で作成したすべてのアンロードデータファイルを入力として,統合後のRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。このとき,作成モードでデータロードすると,統合前のR02のデータが削除されてしまうため,注意が必要です。誤って作成モードでデータロードした場合は,ALTER TABLE実行前の状態にバックアップから回復して,最初からし直します。
  4. データロードした後のデータ件数を確認します。詳細は,「13.13.9 分割・統合後のデータ件数の確認」を参照してください。
  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

(5) 例題5(統合前のRDエリアを統合後のRDエリアとして使用しない場合の運用)

ある連続した格納範囲のRDエリアに空き容量が多いため,一つのRDエリアにデータの格納範囲を統合する場合の運用について説明します。統合後のRDエリアは,統合前の一つのRDエリアを使用しても使用しなくてもかまいません。

統合前のRDエリアを統合後のRDエリアとして使用しない場合の運用例を説明します。

[図データ]

注 1.〜3.は,手順の項番に対応しています。

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で統合対象のすべてのRDエリア内の表データ(R02,R03,R04)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。
  2. ALTER TABLEで統合したい境界値を統合します。
  3. 統合した境界値を格納するRDエリアに対して,1.で作成したすべてのアンロードデータファイルを入力として,統合後のRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。
  4. データロードした後のデータ件数を確認します。詳細は,「13.13.9 分割・統合後のデータ件数の確認」を参照してください。
  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

(6) 例題6(統合対象のRDエリアがほかの境界値で使用されている場合の運用)

統合対象のRDエリアがほかの境界値でも使用されている場合,ほかの境界値のデータも削除されます。このため,統合後にデータが削除されるRDエリアに対しては,統合前にデータベース再編成ユティリティ(pdrorg)でアンロードしたデータをデータベース作成ユティリティ(pdload)でデータロードするときに注意が必要です。

統合対象のRDエリアがほかの境界値で使用されている場合の運用例を説明します。

[図データ]

注 1.〜4.は,手順の項番に対応しています。

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で統合対象のすべてのRDエリア内の表データをデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。このとき,'2002-12-31'以前のデータもアンロードされます。
  2. ALTER TABLEで統合したい境界値を統合します。このとき,ほかの境界値で使用されているRDエリア(R01)のデータも削除されます。
  3. 統合した境界値を格納するRDエリアに対して,1.で作成したすべてのアンロードデータファイルを入力として,統合後のRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を実行します。
  4. ほかの境界値で使用されているR01のデータは削除されているため,R01をアンロードしたアンロードデータファイルを入力として,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。
  5. データロードした後のデータ件数を確認します。詳細は,「13.13.9 分割・統合後のデータ件数の確認」を参照してください。
  6. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。