Hitachi

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


13.3.6 例題6(ディクショナリ表を再編成する場合)

データディクショナリ用RDエリア(DATADIC)及びデータディクショナリLOB用RDエリア(DATALOB)に格納されているディクショナリ表を再編成します。更新前ログ取得モード(省略値)でディクショナリ表を再編成します。

〈手順〉
  1. pdholdコマンドでデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアを閉塞します。

  2. データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアのバックアップを取得します。

  3. pdrorgコマンドの制御文ファイルを作成します。

  4. pdrorgコマンドでディクショナリ表を再編成します。

  5. データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアのバックアップを取得します。

  6. pdrelsコマンドでデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアの閉塞を解除します。

手順の数字はこの後で説明している( )レベルに対応しています。例えば,3の操作は(3)で説明しています。

ポイント

更新前ログ取得モードでpdrorgコマンドを実行するため,前記の手順1〜5の間はデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアを閉塞したままにしてください。

〈この項の構成〉

(1) pdholdコマンドでデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアを閉塞します

RDエリアを閉塞した状態でバックアップを取得してください。バックアップを取得した後に,ほかのユーザがRDエリアの内容を更新しないようにRDエリアの閉塞を解除しないでください。

pdhold -r DATADIC,DATALOB

(2) データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアのバックアップを取得します

再編成中の異常終了に備えて,データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアのバックアップを取得してください。RDエリアの拡張に必要となるディクショナリ表の再編成中にデータディクショナリ用RDエリア又はデータディクショナリLOB用RDエリアに容量不足が発生すると,RDエリアを拡張する対処が取れないため,RDエリアをバックアップから回復する必要があります。また,ディクショナリ表の再編成中にユニットがダウンすると,HiRDB起動時にディクショナリ表を参照できないで,フロントエンドサーバがSUSPEND状態となるため,RDエリアをバックアップから回復する必要があります。バックアップからの回復が必要かどうかの判断は,「注意事項」の条件を参照してください。

(3) pdrorgコマンドの制御文ファイルを作成します

制御文ファイル(/pdrorg/rorg01)の内容を次に示します。

unload /pdrorg/unfile1                       1
lobunld /pdrorg/unfile2                      2
〔説明〕
  1. データディクショナリ用RDエリア用のアンロードデータファイルの名称を指定します。

  2. データディクショナリLOB用RDエリア用のアンロードデータファイルの名称を指定します。

(4) pdrorgコマンドでディクショナリ表を再編成します

pdrorg -k rorg -c dic /pdrorg/rorg01
〔説明〕

-k:再編成をするためrorgを指定します。

-c:ディクショナリ表を再編成する場合に指定します。

/pdrorg/rorg01:(3)で作成したpdrorgコマンドの制御文ファイル名を指定します。

(5) データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアのバックアップを取得します

データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリア(DATADIC及びDATALOB)のバックアップを取得してください。バックアップの取得方法については,「例題8(RDエリア単位にバックアップを取得する場合)」を参照してください。

(6) pdrelsコマンドでデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアの閉塞を解除します

pdrels -r DATADIC,DATALOB

コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。

(7) 注意事項

ディクショナリ表の再編成時,次に示すエラーが発生した場合は注意が必要です。

この場合,次に示す条件に応じて対処してください。

条件1:

データベース再編成ユティリティを更新ログ取得モード,又は更新前ログ取得モードで実行していて,SQL_PHYSICAL_FILES表及びSQL_RDAREAS表のリロードが完了しているとき

  1. データベース構成変更ユティリティでデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアを拡張又は追加します。

  2. オプションや制御文の指定を変更しないで,データベース再編成ユティリティを再度実行します。

条件2:

データベース再編成ユティリティを更新ログ取得モード,又は更新前ログ取得モードで実行していて,SQL_PHYSICAL_FILES表及びSQL_RDAREAS表のリロードが完了していないとき,又は,データベース再編成ユティリティをログレスモードで実行しているとき

  1. 再編成前に取得したバックアップを使用して,データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアをデータベース回復ユティリティで回復します。

  2. データベース構成変更ユティリティでデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアを拡張又は追加します。

  3. ディクショナリ表の再編成を再度実施します。

    エラー発生時(RDエリアの拡張又は追加前)に作成したアンロードデータファイルを使用してリロード処理だけをしないでください。

この場合,次のように対処してください。

  1. 再編成前に取得したバックアップを使用して,データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアをデータベース回復ユティリティで回復します。

  2. pdstart -aコマンドでHiRDBを開始します。

    詳細については,「データディクショナリ用RDエリアに障害が発生して,フロントエンドサーバがSUSPEND状態のときの開始方法(pdstart -a)」を参照してください。