スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(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エリアを閉塞します
(2) データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアのバックアップを取得します
(3) pdrorgコマンドの制御文ファイルを作成します
(4) pdrorgコマンドでディクショナリ表を再編成します
(5) データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアのバックアップを取得します
(6) pdrelsコマンドでデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアの閉塞を解除します
(7) 注意事項

(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エリアをバックアップから回復する必要があります。バックアップからの回復が必要かどうかの判断は,「(7)注意事項」の条件を参照してください。

(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)のバックアップを取得してください。バックアップの取得方法については,「6.4.8 例題8(RDエリア単位にバックアップを取得する場合)」を参照してください。

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

 
pdrels -r DATADIC,DATALOB
 

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

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