7.3.1 ログレスモードでUAP又はユティリティを実行するときの運用方法
実行者 HiRDB管理者
ログレスモードでUAP又はユティリティを実行するときの運用方法について説明します。
(1) 利点
データベース更新ログを取得しないため,その分の処理時間が短縮されます。したがって,UAP又はユティリティの実行時間を短縮できます。
(2) 適用基準
-
大量のデータを追加,更新,又は削除するUAPを実行する場合
-
大量のデータをデータロードする場合
-
表データが多い表を再編成(リロード)する場合
-
ログレスモードのUAPが更新するRDエリアを占有できる場合
(3) 注意事項(重要)
-
クライアント環境定義にPDDBLOG=NOを指定している場合,このUAPで更新する表は排他モード(EX)で排他制御します。このため,同じ表をほかのUAPで同時に更新しないでください。
-
クライアント環境定義にPDDBLOG=ALLを指定(又は省略)していて,かつそのUAPで更新するRDエリアにユーザLOB用RDエリアが含まれている場合,表定義でRECOVERYオペランドにNOを指定したユーザLOB用RDエリアを更新するときは,ほかのUAPがそのRDエリアを更新しないようにしてください。ほかのUAPが更新すると,ログレスモードのUAPが異常終了したときに,ほかのUAPによるRDエリアの更新内容が無効になります。
-
ログレスモードのUAP又はユティリティが異常終了すると,UAP又はユティリティが更新した表を格納するRDエリアが障害閉塞(ログレス閉塞)します。HiRDBはそのRDエリアを回復しません。HiRDB管理者がRDエリアを回復する必要があります。したがって,ログレスモードのUAP又はユティリティが異常終了すると,障害閉塞したRDエリアを回復するまで,そのRDエリアはほかのUAP又はユティリティからアクセスできなくなります。なお,RDエリアはバックアップ取得時点にしか回復できません。
-
ログレスモードのUAP又はユティリティの実行中は,シンクポイントダンプを取得しません。このため,ログレスモードのUAP又はユティリティと同時にほかのUAP又はユティリティを実行しているときに,システム障害が発生すると,再開始に必要な時間が増大します。したがって,ログレスモードでUAP又はユティリティを実行する場合は,そのほかのUAP又はユティリティを実行しないようにしてください。
(4) ほかの機能との関連
-
データベース定義ユティリティでCREATE INDEXを実行する場合,インデクスを作成する表に行データが格納されていると,CREATE INDEXを実行するときにインデクスを一括作成します。このとき,クライアント環境定義にPDDBLOG=NOと指定していると,データベースの更新ログを取得しないでインデクスを一括作成します。したがって,このときHiRDB管理者はログレスモードの運用を実行してください。
-
RDエリアの障害閉塞は,HiRDBの次回正常開始時にも引き継がれます。オープン状態又はクローズ状態も引き継がれます。
(5) 運用方法
(a) ユティリティ(データベース再編成ユティリティ)をログレスモードで実行する場合の運用方法
ユティリティ(データベース再編成ユティリティ)をログレスモードで実行する場合の運用方法については,「データベースの更新ログ取得方式の選択」及び「例題7(ログレスモードで再編成する場合)」を参照してください。
(b) ログレスモードでUAPを実行する場合の運用方法
ログレスモードでUAPを実行する場合の運用方法を次に示します。
- 〈手順〉
-
-
pdlogswap -d sys -wコマンドで,システムログファイルをスワップします。
-
pdcopyコマンドで,更新対象RDエリアのバックアップを取得します。バックアップの取得方法については,「例題8(RDエリア単位にバックアップを取得する場合)」を参照してください。
-
ログレスモードのUAPを実行します。
-
pdlogswap -d sys -wコマンドで,システムログファイルをスワップします。
-
pdcopyコマンドで,更新対象RDエリアのバックアップを取得します。バックアップの取得方法については,「例題8(RDエリア単位にバックアップを取得する場合)」を参照してください。
- 注
-
バックアップとシステムログを使用してUAP実行前の状態にRDエリアを回復できる場合は,手順2.のバックアップを取得する必要はありません。ただし,プラグインインデクスの一括作成をする場合は,ユーザLOB用RDエリアのバックアップを必ず取得してください。
-
(6) UAP又はユティリティが異常終了した場合
UAP又はユティリティが異常終了すると,そのUAP又はユティリティが更新したRDエリアは障害閉塞(ログレス閉塞)となります。HiRDB管理者は,障害閉塞をしたRDエリアを回復してください。RDエリアの回復方法については,「データベースをバックアップ取得時点に回復する方法」を参照してください。
(a) 障害閉塞となったRDエリアを知るには
pddblsコマンドを実行すると,どのRDエリアが障害閉塞になっているかが分かります。
(b) UAP又はユティリティを実行する前にバックアップを取得しなかった場合
UAP又はユティリティを実行する前にバックアップを取得しなかった場合は,範囲指定の回復でRDエリアを回復してください。範囲指定の回復については,「データベースを最新の同期点に回復する方法」を参照してください。
-
このときの入力情報は,障害閉塞となったRDエリアの最新のバックアップとそのバックアップ以降のシステムログを格納したアンロードログファイル(システムログファイル)となります。
-
データベース回復ユティリティの-Tオプションの回復終了時刻には,UAPを開始した時刻を指定してください。
-
上記の方法でデータベースを回復した後に再度UAP又はユティリティを実行してください。
(c) 初期データからRDエリアを回復する場合(UAPが異常終了した場合)
データベース回復ユティリティを使用しないで,初期データからRDエリアを回復する場合の手順を次に示します。なお,ユティリティが異常終了した場合は,この手順でRDエリアを回復できません。
- 〈手順〉
-
-
PURGE TABLE文で,UAPが更新したすべての表の行データを削除します。※
-
pdrelsコマンドで,障害閉塞となったRDエリアの閉塞状態を解除します。
-
pdloadコマンドで初期データを表に格納し直します。
- 注※
-
一時表用RDエリアが障害閉塞になった場合,一時表に対してPURGE TABLE文は実行できません。そのため,一時表用RDエリアを回復する場合は,pdmodコマンドで一時表用RDエリアを再初期化してください。
-
(d) 初期データからRDエリアを回復する場合(ユティリティが異常終了した場合)
データベース回復ユティリティを使用しないで,初期データからRDエリアを回復する場合の手順を次に示します。
- 〈手順〉
-
-
pdcloseコマンドで回復対象のRDエリアをクローズします。
-
pdmodコマンドでRDエリアを再初期化します。
-
pdopenコマンドでRDエリアをオープンします。
-
pdloadコマンドで初期データを表に格納し直します。
-
pdrelsコマンドで,障害閉塞となったRDエリアの閉塞状態を解除します。
-