Hitachi

ノンストップデータベース HiRDB Version 10 システム運用ガイド(UNIX(R)用)


13.13.3 例題(マトリクス分割の場合)

表の分割格納条件を変更する手順(マトリクス分割の場合)を説明します。

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

〈この項の構成〉

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

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

[図データ]

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

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で格納条件を変更するRDエリア内の表データ(RD13,RD23)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。

  2. ALTER TABLEで分割したい境界値を分割します。このとき,分割対象のRDエリア(RD13,RD23)のデータは削除されます。

  3. 分割した境界値を格納するRDエリアに対して,1.で作成したアンロードデータファイルを入力ファイルとして,分割後のすべてのRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。

    アンロードデータファイル中には,分割後の格納条件に合わないデータが含まれているため,エラーデータ情報が出力されます。エラーデータ情報が不要な場合は,option文のdivermsg=offを指定して,エラーデータ情報の出力を抑止します。

  4. データロードした後のデータ件数を確認します。詳細は,「分割・統合後のデータ件数の確認」を参照してください。

  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

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

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

分割前のRDエリアを分割後に使用してデータを削除しないで分割する運用の例を説明します。この例は,登録日を分割キーとしている表であり,RD13及びRD23には2005年以降のデータが格納されていないことが前提です。第2次元のRD13に対する格納範囲を分割し,新たに用意したRDエリア(RD14及びRD24)に2005年以降のデータを格納します。

[図データ]

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

〈手順〉
  1. 分割対象の境界値を含むRDエリアが分割後の格納条件のデータしかないことを確認します(SELECT MAX(分割キー列名) FROM 表名 WHERE 分割キー列名>分割後の境界値)。分割後の格納条件以外のデータ(2005年以降のデータ)がある場合は,「例題1(分割時の基本的な運用)」で実施してください。

    この手順を実施しなかった結果,分割後の格納条件に合わないデータが残った場合の回復手順については,「分割後の格納条件に合わないデータが残った場合の回復手順」を参照してください。

  2. ALTER TABLEで分割したい境界値を分割します。このとき,WITHOUT PURGEを指定します。

  3. 2.で無効になった,ルーチン,トリガをALTER ROUTINEで再作成します。

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

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

[図データ]

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

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で格納条件を変更するRDエリア内の表データ(RD21,RD22,RD23)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。このとき,2000以下のデータもアンロードされます。

  2. ALTER TABLEで分割したい境界値を分割します。このとき,分割対象のRDエリア(RD21,RD22,RD23)のデータは(RD23のほかの格納範囲のデータも)削除されます。

  3. 分割した境界値を格納するRDエリアに対して,1.で作成したアンロードデータファイルを入力として,分割後のすべてのRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。このとき,RD23のデータも2.の時点でデータが削除されているため,RD23に対しても追加モードでデータロードする必要があります。

    アンロードデータファイル中には,分割後の格納条件に合わないデータが含まれているため,エラーデータ情報が出力されます。エラーデータ情報が不要な場合は,option文のdivermsg=offを指定して,エラーデータ情報の出力を抑止します。

  4. データロードした後のデータ件数を確認します。詳細は,「分割・統合後のデータ件数の確認」を参照してください。

  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

(4) 例題4(統合前の一つの特定境界値格納RDエリア群を統合後の特定境界値格納RDエリア群として使用する場合の運用)

ある連続した格納範囲の特定境界値格納RDエリア群に空き容量が多いため,一つの特定境界値格納RDエリア群にデータの格納範囲を統合する場合の運用について説明します。統合後のRDエリアは,統合前の一つのRDエリアを使用しても使用しなくてもかまいません。この例では,RD12,RD13,RD22,及びRD23に分割していた第2次元の格納条件を,RD12及びRD22に統合します。

[図データ]

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

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で統合対象のRDエリアのうち,統合後に使用しないRDエリア内の表データ(RD13,RD23)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。

  2. ALTER TABLEで統合したい境界値を統合します。このとき,RD12及びRD22は統合後もそのまま使用するため,WITHOUT PURGEを指定します。

  3. 統合した境界値を格納するRDエリアに対して,1.で作成したすべてのアンロードデータファイルを入力として,統合後のRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。このとき,作成モードでデータロードすると,統合前のRD12及びRD22のデータが削除されてしまうため,注意が必要です。誤って作成モードでデータロードした場合は,ALTER TABLE実行前の状態にバックアップから回復して,手順1.からやり直します。

  4. データロードした後のデータ件数を確認します。詳細は,「分割・統合後のデータ件数の確認」を参照してください。

  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

(5) 例題5(統合前の一つの特定境界値格納RDエリア群を統合後の特定境界値格納RDエリア群として使用しない場合の運用)

この例では,RD12,RD13,RD22,及びRD23に分割していた第2次元の格納条件を,新たに用意したRD15及びRD25に統合します。

[図データ]

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

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で統合対象のすべてのRDエリア内の表データ(RD12,RD13,RD22,RD23)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。

  2. ALTER TABLEで統合したい境界値を統合します。

  3. 統合した境界値を格納するRDエリアに対して,1.で作成したすべてのアンロードデータファイルを入力として,統合後のRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を使用して,追加モードでデータロードします。

  4. データロードした後のデータ件数を確認します。詳細は,「分割・統合後のデータ件数の確認」を参照してください。

  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。

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

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

[図データ]

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

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で統合対象のすべてのRDエリア内の表データ(RD11,RD12,RD22,RD23)をデータベース作成ユティリティ(pdload)で入力できる形式でアンロードします。このとき,2000以下のデータもアンロードされます。

  2. ALTER TABLEで統合したい境界値を統合します。このとき,統合対象のRDエリアのデータは(RD11及びRD21のほかの格納範囲のデータも)削除されます。

  3. 統合した境界値を格納するRDエリアに対して,1.で作成したすべてのアンロードデータファイルを入力として,統合後のRDエリアに対して,RDエリア単位にデータベース作成ユティリティ(pdload)を実行します。このとき,RD11及びRD21のデータも2.の時点でデータが削除されているため,RD11及びRD21に対しても追加モードでデータロードする必要があります。

  4. データロードした後のデータ件数を確認します。詳細は,「分割・統合後のデータ件数の確認」を参照してください。

  5. 2.で無効になったルーチン,トリガをALTER ROUTINEで再作成します。