- -r {RDエリア名〔,RDエリア名〕…|ALL}
- RDエリア名 〜<識別子>((1〜30))
- 閉塞するRDエリア名を指定します。
- ALL
- すべてのRDエリアを閉塞する場合に指定します。ただし,ほかのオプションと-qオプションとの組み合わせによって,閉塞されるRDエリアは次のようになります。
ほかのオプション |
-qオプション指定なし |
-qオプション指定あり |
-b |
リスト用RDエリアを除くすべてのRDエリア |
インナレプリカグループ内の,指定した世代のRDエリア |
-s |
-sオプションを指定した場合,-qは省略できません。 |
上記以外 |
マスタディレクトリ用RDエリアを除くすべてのRDエリア |
- <規則>
- RDエリアを指定する場合の規則については,「1.5.2 運用コマンド,ユティリティでのRDエリアの指定」を参照してください。
- -bオプションを指定した場合はマスタディレクトリ用RDエリアを指定できますが,それ以外の場合は指定できません。また,-bオプション指定時は,リスト用RDエリアは指定できません。
- ユーザ用RDエリア又はユーザLOB用RDエリアを指定する場合は,データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。
- オープン状態,かつ閉塞解除状態
- オープン状態,かつpdholdコマンドによる閉塞状態
- -cオプションを指定して,RDエリア名にデータディクショナリ用RDエリアとユーザ用RDエリア又はユーザLOB用RDエリアを同時に指定する場合は,データディクショナリ用RDエリアを最後に指定してください。
- インナレプリカ機能を使用している場合,オリジナルRDエリア名及びレプリカRDエリア名も指定できます。ただし,この場合,指定できるのはユーザ用RDエリア及びユーザLOB用RDエリアだけです。
- -q 世代番号 〜<符号なし整数>((0〜10))
レプリカRDエリアの世代番号を指定します。
このオプションを指定した場合,-rオプションにはオリジナルRDエリア名を指定してください。この場合,レプリカがすべて削除されたオリジナルRDエリア,又は通常のRDエリア(レプリカRDエリアがないRDエリア)を指定したときはエラーとなります。
閉塞状態にした後,RDエリアをクローズします。これを「クローズ,コマンド閉塞」といいます。
このオプションを指定しなかった場合は,RDエリアの閉塞だけをします。
閉塞したRDエリアに対して,ユーザからの参照を許可する場合に指定します。これを「参照可能コマンド閉塞」といいます。
このオプションを指定しなかった場合は,閉塞したRDエリアへの参照はできません。
バックアップ閉塞にする場合に指定します。
バックアップ閉塞とは,オンライン中でもバックアップを取得できる閉塞状態のことをいいます。次の場合にRDエリアをバックアップ閉塞にします。
- pdcopyの更新可能モードでバックアップを取得する場合
- pdcopy以外の汎用バックアップツールや,OSのコマンドなどでバックアップを取得する場合
- 二重化された論理ボリュームを切り離す場合
例えば,JP1/OmniBack IIのバックアップ取得機能でバックアップを取得する場合に使用します。
バックアップ閉塞には,次の四つの状態があります。
- 参照可能バックアップ閉塞(-b指定)
- 参照可能バックアップ閉塞(更新WAITモード)(-b,-w指定)
- 更新可能バックアップ閉塞(-b,-u指定)
- 更新可能バックアップ閉塞(WAITモード)(-b,-w,-u指定)
1と2をデータベースの静止化といいます。
各バックアップ閉塞の説明を次に示します。
- 参照可能バックアップ閉塞:
- 閉塞解除するまで更新トランザクションをエラーにしてもよい場合,参照可能バックアップ閉塞にします。
- <留意事項>
- 参照可能バックアップ閉塞の場合,更新トランザクションとのデッドロックは発生しません。
- この状態で取得したバックアップは,システムログを使用しなくても,バックアップ取得時点にデータベースを回復できます。また,バックアップ閉塞直前からのシステムログを使用すると,障害発生時点の状態にデータベースを回復できます。
- 参照可能バックアップ閉塞のRDエリアは参照はできますが,閉塞解除するまでそのRDエリアへの更新はSQLエラー(−920)となります。特に,ログレスモードの更新トランザクションがエラーで終了した場合は,既に更新したRDエリアがあると,そのRDエリアは障害閉塞となるため,注意してください。
- 参照可能バックアップ閉塞(更新WAITモード):
- 閉塞解除するまで更新トランザクションを待たせてもよい場合に,参照可能バックアップ閉塞(更新WAITモード)にします。
- <留意事項>
- この状態で取得したバックアップは,システムログを使用しなくても,バックアップ取得時点にデータベースを回復できます。また,バックアップ閉塞直前からのシステムログを使用すると,障害発生時点の状態にデータベースを回復できます。
- 参照可能バックアップ閉塞(更新WAITモード)のRDエリアは参照はできますが,閉塞解除するまでそのRDエリアへの更新は,バックアップ閉塞のRDエリアの排他で待ち状態となります。したがって,クライアント環境定義のPDLCKWAITTIME(省略時はシステム定義のpd_lck_wait_timeout),及びPDCWAITTIMEには,バックアップ閉塞中の時間以上を設定する必要があります。タイムアウトとなった場合,更新トランザクションはSQLエラー(−770)となります。
- 参照可能バックアップ閉塞(更新WAITモード)にした場合,更新トランザクションとの間で,デッドロックが発生することがあります。システム定義にpd_deadlock_priority_use=Yを指定し,更にpd_command_deadlock_priorityオペランドにデッドロックプライオリティ値を指定することで,デッドロック発生時に更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。
- デッドロックが発生した場合,pdholdコマンドが取得したバックアップ閉塞の排他はすべて解除され,再度同じバックアップ閉塞処理が繰り返されます。このリトライ処理は,最大5回繰り返します。5回目のリトライ処理でもデッドロックが発生する場合は,pdholdコマンドが掛けたバックアップ閉塞をすべて解除し,エラー終了します。
- ログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラー終了した場合は,既に更新したRDエリアがあると,そのRDエリアは障害閉塞となるため,注意してください。
- 更新可能バックアップ閉塞:
- すぐにバックアップ閉塞にしたい場合で,かつバックアップ閉塞中もそのRDエリアに対してアクセスしたいときに更新可能バックアップ閉塞にします。ほかのコマンドが実行中の場合,そのコマンドが完了した後,更新可能バックアップ閉塞にするpdholdコマンドが実行できるようになります。
- <留意事項>
- 更新可能バックアップ閉塞にした場合,そのRDエリアに対して参照及び更新ができます。
- 更新可能バックアップ閉塞は,閉塞解除するまで更新バッファのデータベース反映時に,ページの物理ログが出力されます。このため,次の点に注意してください。
(a) システムログファイルの容量が不足していないか確認してください。
(b) 大量更新中には,更新可能バックアップ閉塞にしないでください(プラグインインデクスの更新も大量更新となります)。
(c) バックアップが完了したら,すぐに更新可能バックアップ閉塞を解除してください。
- 更新トランザクション実行中でも,pdholdコマンドを実行すると更新可能バックアップ閉塞状態にできます。
- この状態で取得したバックアップを使用してデータベースを回復するときは,バックアップ及び前回のシンクポイント以降のシステムログが必要になります。ただし,前回のシンクポイント以降に更新前ログ取得モード又はログレスモードの更新トランザクションを実行している場合は,このバックアップでは回復できません。
- 更新可能バックアップ閉塞中に共用RDエリアを更新すると,物理ログが出力されます。そのため,更新可能バックアップ閉塞状態以外の共用RDエリアに対する更新に比べ,出力されるログの量が増加します。更新可能バックアップ閉塞状態の共用RDエリアのバックアップを取得する場合は,更新業務を実行しない,又は,更新量を減らすことをお勧めします。
- 更新可能バックアップ閉塞中のRDエリアに対する更新トランザクションが更新前ログ取得モード又はログレスモードの場合,バックアップ閉塞のRDエリアの排他で待ち状態となります。この場合,クライアント環境定義のPDLCKWAITTIME(省略時はシステム定義のpd_lck_wait_timeout),及びPDCWAITTIMEには,バックアップ閉塞中の時間以上を設定する必要があります。タイムアウトとなった場合,更新前ログ取得モード又はログレスモードの更新トランザクションはエラーとなります。
- ログレスモードの更新トランザクションがタイムアウトでエラー終了した場合は,既に更新したRDエリアがあると,そのRDエリアは障害閉塞となるため,注意してください。
- 更新可能バックアップ閉塞(WAITモード):
- 更新トランザクションの完了を待ってバックアップ閉塞にしてもよい場合で,かつバックアップ閉塞中にそのRDエリアにアクセスしたいときに更新可能バックアップ閉塞(WAITモード)にします。
- <留意事項>
- 更新可能バックアップ閉塞(WAITモード)中に,更新バッファの内容がRDエリアに反映された場合,バックアップ閉塞解除時に警告メッセージ(KFPH00157-W)が出力されます。
- 更新可能バックアップ閉塞(WAITモード)にした場合,そのRDエリアに対しての参照及び更新ができます。
- 更新可能バックアップ閉塞(WAITモード)は,閉塞解除するまで更新バッファのデータベース反映時に,ページの物理ログが出力されます。このため,次の点に注意してください。
(a) システムログファイルの容量が不足していないか確認してください。
(b) 大量更新中には,更新可能バックアップ閉塞にしないでください(プラグインインデクスの更新も大量更新となります)。
(c) バックアップが完了したら,すぐに更新可能バックアップ閉塞を解除してください。
- この状態で取得したバックアップを使用してデータベースを回復する場合,バックアップ閉塞解除時に警告メッセージ(KFPH00157-W)が出力されていなければ,システムログがなくてもバックアップ閉塞時点に回復できます。それ以外の時点に回復する場合,RDエリア間で整合性がとれた状態に回復する場合,又は警告メッセージ(KFPH00157-W)が出力された場合は,バックアップ閉塞直前からのシステムログを使用して回復する必要があります。
ただし,-M s指定のpdcopyでバックアップを取得した場合,警告メッセージ(KFPH00157-W)の有無に関係なく,前回のシンクポイント以降のシステムログが必要となります。
- 更新可能バックアップ閉塞中のRDエリアに対する更新トランザクションが更新前ログ取得モード又はログレスモードの場合,バックアップ閉塞のRDエリアの排他で待ち状態となります。この場合,クライアント環境定義のPDLCKWAITTIME(省略時はシステム定義のpd_lck_wait_timeout),及びPDCWAITTIMEには,バックアップ閉塞中の時間以上を設定する必要があります。
- 更新可能バックアップ閉塞(WAITモード)にした場合,更新前ログ取得モード又はログレスモードの更新トランザクションとの間でデッドロックが発生することがあります。システム定義にpd_deadlock_priority_use=Yを指定し,更にpd_command_deadlock_priorityオペランドにデッドロックプライオリティ値を指定することで,デッドロック発生時に更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。
- デッドロックが発生した場合,pdholdコマンドが取得したバックアップ閉塞の排他はすべて解除され,再度同じバックアップ閉塞処理が繰り返されます。このリトライ処理は,最大5回繰り返します。5回目のリトライ処理でもデッドロックが発生する場合は,pdholdコマンドが掛けたバックアップ閉塞をすべて解除し,エラー終了します。
- ログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラー終了した場合は,既に更新したRDエリアがあると,そのRDエリアは障害閉塞となるため,注意してください。
- 更新可能バックアップ閉塞中に共用RDエリアを更新すると,物理ログが出力されます。そのため,更新可能バックアップ閉塞状態以外の共用RDエリアに対する更新に比べ,出力されるログの量が増加します。更新可能バックアップ閉塞状態の共用RDエリアのバックアップを取得する場合は,更新業務を実行しない,又は,更新量を減らすことをお勧めします。
- -w
- 参照可能バックアップ閉塞(更新WAITモード),又は更新可能バックアップ閉塞(WAITモード)にする場合に指定します。
- -u
- 更新可能バックアップ閉塞にする場合に指定します。
- 更新バックアップ閉塞のRDエリアに対しては,閉塞中でも参照及び更新ができます。ただし,ログレスモードのUAP,ユティリティなどの更新は,閉塞解除されるまで待ち状態となります。
- このオプションを省略した場合は,参照可能バックアップ閉塞となります。
- <バックアップ閉塞に共通する留意事項>
- バックアップ閉塞中は,pdmod(RDエリアの拡張,再初期化,属性変更),pdload,及びpdrorg(リロード)は実行できません。
- 参照可能バックアップ閉塞(更新WAITモード),更新可能バックアップ閉塞,及び更新可能バックアップ閉塞(WAITモード)のRDエリアは,リランのときに状態は引き継がれません。
- ログレスモードでの運用時に更新可能バックアップ閉塞にする場合は,事前にpdlogswap -d sys -wコマンドでシステムログファイルのスワップ及びシンクポイントの有効化を必ずしてください。しなかった場合に障害が発生したときは,pdrstrで範囲指定で回復することになります。
- 更新可能バックアップ閉塞でのバックアップ取得中にHiRDBを終了又は再開始した場合,取得していたバックアップは保証されなくなります。この場合,再度バックアップを取得し直してください。
- 参照可能バックアップ閉塞(更新WAITモード)の場合は,pdholdコマンドと更新トランザクションとの間で,また,更新可能バックアップ閉塞の場合は,pdholdコマンドとログレスモードの更新トランザクションとの間でデッドロックが発生することがあります。デッドロックが発生した場合,RDエリアが既に参照可能バックアップ閉塞(更新WAITモード),又は更新可能バックアップ閉塞となっていれば,そのRDエリアをpdrelsコマンドで閉塞解除した後,再度pdholdコマンドを実行してください。RDエリアが参照可能バックアップ閉塞(更新WAITモード),又は更新可能バックアップ閉塞になっていない場合,時間を空けてから再度pdholdコマンドを実行してください。
- 参照可能バックアップ閉塞,参照可能バックアップ閉塞(更新WAITモード),又は更新可能バックアップ閉塞(WAITモード)にする場合,更新トランザクションが実行中のときは,その更新トランザクションが終了するまでpdholdコマンドは待ち状態となります。この待ちでは排他待ち時間を監視しないで,実行中の更新トランザクションの終了を待ち続けます。この待ちの間,同一RDエリアに対する後続のトランザクションは排他待ちになり,待ち時間がクライアント環境定義のPDLCKWAITTIME(省略時はシステム定義のpd_lck_wait_timeout),又はPDCWAITTIME以上になるとタイムアウトします。待ち状態となっているpdholdコマンドを終了したい場合は,pdcancelコマンドでシングルサーバプロセス,又はバックエンドサーバプロセスを終了してください。pdcancelの-uオプションのUAP識別子には文字列pdholdを指定します。
- バックアップ閉塞にするpdholdコマンドが,ほかのコマンドが掛けた資源「RDエリア状態」の排他によって待ち状態になった場合,システム定義のpd_lck_wait_timeoutオペランドでのタイムアウトにはなりません。この場合,ほかのコマンドでの排他が解除されるまで待ち状態となります。待ち状態となっているpdholdコマンドを終了したい場合は,pdcancelコマンドでシングルサーバプロセス,又はバックエンドサーバプロセスを終了してください。
- オンライン再編成閉塞や,参照可能閉塞になっているRDエリアは,バックアップ閉塞にはできません。RDエリアの状態は,pddblsコマンドで確認できます。
- RDエリアの自動増分を適用している場合,そのRDエリアを更新可能バックアップ閉塞,又は更新可能バックアップ閉塞(WAITモード)にすると,RDエリアの自動増分が抑止されます。RDエリアの自動増分の抑止状態を解除したい場合は,pdrelsコマンドを実行して,更新可能バックアップ閉塞,及び更新可能バックアップ閉塞(WAITモード)を解除してください。
- RDエリアの自動増分を適用している場合,そのRDエリアを更新可能バックアップ閉塞,又は更新可能バックアップ閉塞(WAITモード)にするときは,事前にデータベース状態解析ユティリティで十分な未使用領域があることを確認してください。
RDエリアを同期化閉塞する場合に指定します。
同期化閉塞は,インナレプリカ機能を利用している場合に使用します。インナレプリカグループ内でほかの世代のRDエリアのデータを,該当するRDエリアのデータとして複写するときなど(ペアボリュームの再ペア化など),同期化閉塞にします。
同期化閉塞をすると,該当するRDエリアのバッファを破棄し,参照及び更新トランザクションを待ち状態にします。
- <規則>
- 同期化閉塞したRDエリアの更新バッファは破棄されてDBに反映されないため,RDエリアの内容は不整合となります。このため,更新バッファがある場合,RDエリアに不整合情報を書き込みます。同期化閉塞後,インナレプリカグループ内の整合性のあるほかのRDエリアのデータを,該当するRDエリアに複写するまで,閉塞は解除できません。
- このオプションを指定して,-rオプションで次のRDエリアを指定した場合,エラーとなります。
- ユーザ用RDエリア,ユーザLOB用RDエリア以外のRDエリア
- レプリカRDエリアがすべて削除されたオリジナルRDエリア,又はレプリカRDエリアがないRDエリア
- このオプションを指定して,-rオプションで複数のRDエリアを指定した場合,サーバ単位に一括で処理をします。途中でエラーとなった場合,そのRDエリアがあるサーバでの処理を無効にして,処理を続行します。
- 同期化閉塞中は,pdmod(RDエリアの拡張,削除,及び属性変更),pdload,pdrorg,及びpdcopyは実行できません。
- 同期化閉塞した場合,閉塞解除するまで,そのRDエリアには参照可能バックアップ閉塞(更新WAITモード)と同じ排他が掛かります。そのため,クライアント環境定義のPDLCKWAITTIME(省略時はシステム定義のpd_lck_wait_timeout),及びPDCWAITTIMEの値には,同期化閉塞中の時間以上を設定する必要があります。タイムアウトとなった場合,参照及び更新トランザクションはSQLエラー(-770)となります。
- 同期化閉塞した場合,参照及び更新トランザクションとの間でデッドロックが発生することがあります。システム定義にpd_deadlock_priority_use=Yを指定し,更にpd_command_deadlock_priorityオペランドにデッドロックプライオリティ値を指定することで,デッドロック発生時に参照及び更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。運用コマンドがデッドロックでエラーとなった場合,一定時間後に再度pdholdコマンドを実行してください。なお,複数のRDエリアを指定したpdhold -sコマンドがエラーになった場合,すべてのRDエリアの同期化閉塞処理を無効にします。
- ログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラー終了した場合,更新済みのRDエリアがあると,そのRDエリアはログレス閉塞状態になるので注意してください。
- 表とインデクスのように,データに関連性があるRDエリアを複数同期化閉塞する場合,1回のpdholdコマンドで実行してください。
- pdhold -sコマンドを実行した場合,インメモリ化が強制的に解除されます。この場合,インメモリデータバッファ上の更新データはRDエリアに反映されません。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.