Hitachi

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


13.13.2 例題(格納条件指定の場合)

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

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

〈この項の構成〉

(1) 例題1(複数の値を持つ格納条件を指定しているRDエリアを分割する)

RDエリア(R02)の容量が不足してきたため,分割格納条件を変更してRDエリアを分割します。

[図データ]

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

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

  2. ALTER TABLEでRDエリアを分割します。このとき,分割対象のRDエリア(R02,RI02)のデータは削除されます。

  3. データベース作成ユティリティ(pdload)の追加モードで,RDエリア(R02)にデータロードします。1の操作で作成したアンロードデータファイルを入力ファイルとし,RDエリア単位にデータロードしてください。

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

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

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

(2) 例題2(分割格納条件を追加する)

支店コードを分割キーとしている表の分割格納条件(支店コードが '5'の分割格納条件)を追加します。次のように分割格納条件を追加します。

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

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

  2. ALTER TABLEでRDエリアを分割します。このとき,分割対象のRDエリア(R03,RI03)のデータは削除されます。

  3. データベース作成ユティリティ(pdload)の追加モードで,RDエリア(R03,R04)にデータロードします。1の操作で作成したアンロードデータファイルを入力ファイルとし,RDエリア単位にデータロードしてください。

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

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

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

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

支店コードを分割キーとしている表の分割格納条件を変更します。次のように分割を行います。

なお,この例は,RDエリア(R03)に支店コードが '5'のデータが格納されていないことを前提としています。

[図データ]

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

〈手順〉
  1. 追加する格納条件に一致するデータ(格納条件 ='5'のデータ)が分割対象表に格納されていないことを確認します。

    格納条件 ='5'のデータがある場合は,「例題2(分割格納条件を追加する)」の方法で分割してください。この方法で分割しなかった結果,分割後に格納条件と合わないデータが残ってしまった場合は,「分割後の格納条件に合わないデータが残った場合の回復手順」に示す方法でデータを回復してください。

  2. ALTER TABLEでRDエリアを分割します。このとき,WITHOUT PURGEを指定します。

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

(4) 例題4(分割格納条件を変更してRDエリアを統合する)

RDエリア(R02,R03,R04)に分割していた格納条件をR02に統合します。

[図データ]

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

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で,RDエリア(R03,R04)内のデータをアンロードします。データベース作成ユティリティ(pdload)で入力できる形式でアンロードしてください。

  2. ALTER TABLEでRDエリアを統合します。このとき,R02は統合後もそのまま使用するため,WITHOUT PURGEを指定します。

  3. データベース作成ユティリティ(pdload)の追加モードで,RDエリア(R02)にデータロードします。1の操作で作成したアンロードデータファイルを入力ファイルとし,RDエリア単位にデータロードしてください。

    なお,作成モードでデータロードをすると,統合前のR02のデータが削除されてしまいます。誤って作成モードで実行してしまった場合は,ALTER TABLE実行前の状態にバックアップから回復し,最初から操作をし直してください。

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

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

(5) 例題5(分割格納条件を削除する)

RDエリア(R03,R04,R05)に分割していた格納条件をR05に統合し,R03,R04の格納条件を削除します。

[図データ]

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

〈手順〉

格納条件を削除するRDエリア(R03,R04)内のデータが必要ない場合,1と3の操作(アンロードとデータロード)は必要ありません。

  1. データベース再編成ユティリティ(pdrorg)で,RDエリア(R03,R04)内のデータをアンロードします。データベース作成ユティリティ(pdload)で入力できる形式でアンロードしてください。

  2. ALTER TABLEでRDエリアを統合します。

  3. データベース作成ユティリティ(pdload)の追加モードで,RDエリア(R05)にデータロードします。1の操作で作成したアンロードデータファイルを入力ファイルとし,RDエリア単位にデータロードしてください。

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

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

(6) 例題6(分割と統合を連続して行う)

RDエリア(R01)をR01とR04に分割した後に,RDエリア(R02とR04)をR02に統合します。

[図データ]

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

〈手順〉
  1. データベース再編成ユティリティ(pdrorg)で,RDエリア(R01)内のデータをアンロードします。データベース作成ユティリティ(pdload)で入力できる形式でアンロードしてください。

  2. ALTER TABLEでRDエリアを分割します。

  3. ALTER TABLEでRDエリアを統合します。

  4. データベース作成ユティリティ(pdload)の追加モードで,RDエリア(R01,R02)にデータロードします。1の操作で作成したアンロードデータファイルを入力ファイルとし,RDエリア単位にデータロードしてください。

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

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

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

    参考

    通常,3の操作の前にR02及びR04内のデータのアンロードが必要になります。しかし,この例のように2回のSQLで分割と統合を連続して実行する場合は,1の操作で作成したアンロードデータファイルを4のデータロードの入力情報に使用できるため,3の操作の前に必要なアンロードが不要になります。