Hitachi

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


6.6.1 バックアップ閉塞とは

次に示す場合に,バックアップ対象RDエリアをバックアップ閉塞してください。

RDエリアをバックアップ閉塞すると,オンライン中でもバックアップを取得できます。RDエリアをバックアップ閉塞するには,pdholdコマンドで-bオプションを指定します。

〈この項の構成〉

(1) バックアップ閉塞の種類

バックアップ閉塞には次の表に示す四つの種類があります。

表6‒5 バックアップ閉塞の種類

バックアップ閉塞の種類

説明

参照可能バックアップ閉塞

バックアップ閉塞中,バックアップ閉塞RDエリアの参照はできるが,更新はSQLエラー(−920)になります。

特徴及び注意事項

  • ここで取得したバックアップを使用して,データベースをバックアップ取得時点に回復できます。

  • 更新トランザクションとのデッドロックは発生しません。

  • 参照可能バックアップ閉塞中のRDエリアに対してログレスモードの更新トランザクションを実行すると,更新トランザクションはRDエリアで排他待ち状態になり,排他解除後にエラーになるため,RDエリアが障害閉塞状態になります。

参照可能バックアップ閉塞(更新WAITモード)

バックアップ閉塞中,バックアップ閉塞RDエリアを参照できます。更新はバックアップ閉塞が解除されるまで排他待ち状態になります。

特徴及び注意事項

  • ここで取得したバックアップを使用して,データベースをバックアップ取得時点に回復できます。

  • pd_lck_wait_timeoutオペランド又はクライアント環境定義のPDCWAITTIMEオペランドには,バックアップ閉塞中の時間以上を指定してください。更新トランザクションがタイムアウトになると,SQLエラー(−770)になります。

  • 更新トランザクションとの間でデッドロックが発生する場合があります。更新トランザクションをエラーにしないようにするには,pd_deadlock_priority_use = Yを指定してください。デッドロックが発生した場合は,pdholdコマンドが取得したバックアップ閉塞の排他をすべて解除し,再度同じバックアップ閉塞処理が繰り返されます。このリトライ処理は,最大5回繰り返されます。5回目のリトライ処理でもデッドロックが発生する場合は,pdholdコマンドが取得したバックアップ閉塞の排他をすべて解除して,pdholdコマンドをエラーにします。

  • ログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラーになった場合,更新したRDエリアが障害閉塞状態になります。

更新可能バックアップ閉塞

バックアップ閉塞中,バックアップ取得対象RDエリアの参照及び更新ができます。更新トランザクションが実行中でも,pdholdコマンドを待ち状態にしないで,RDエリアをすぐに更新可能バックアップ閉塞状態にします。

特徴及び注意事項

  • データベースをバックアップ取得時点には回復できません。バックアップ取得時点以降の任意の同期点への回復だけとなります。したがって,データベースを回復するには,バックアップ及びバックアップ取得直前のシンクポイントからのシステムログが必要になります。

  • 前回のシンクポイント時点から現時点の間に,更新前ログ取得モード又はログレスモードの更新トランザクションを実行した場合は,更新可能バックアップ閉塞を適用しないでください。このバックアップを使用してデータベースを回復できません。

更新可能バックアップ閉塞(WAITモード)

バックアップ閉塞中,バックアップ取得対象RDエリアの参照及び更新ができます。更新トランザクションが実行中の場合は,更新トランザクションが終了するまでpdholdコマンドを待ち状態にします。

特徴及び注意事項

  • バックアップ閉塞中に発生した更新トランザクションによって更新されたバッファの内容がRDエリアに反映された場合は,バックアップ閉塞を解除したときにKFPH00157-Wメッセージを出力します。このメッセージが出力された場合は,データベースをバックアップ取得時点に回復できません。バックアップ取得時点以降の任意の同期点への回復だけとなります。したがって,データベースを回復するには,バックアップ閉塞コマンド実行開始時点からのシステムログが必要になります。

  • KFPH00157-Wメッセージが出力されなかった場合は,ここで取得したバックアップを使用して,データベースをバックアップ取得時点に回復できます。

    ただし,pdcopyコマンドの更新可能モード(-M s指定)でバックアップを取得した場合は,データベースをバックアップ取得時点に回復できません。バックアップ取得時点以降の任意の同期点への回復だけになります。したがって,データベースを回復するには,バックアップ及びバックアップ取得直前のシンクポイントからのシステムログが必要になります。

  • 更新前ログ取得モード又はログレスモードの更新トランザクションは,バックアップ閉塞RDエリアで排他待ちになります。したがって,pd_lck_wait_timeoutオペランド又はクライアント環境定義のPDCWAITTIMEオペランドには,バックアップ閉塞中の時間以上を指定してください。更新トランザクションがタイムアウトになった場合,更新トランザクションがエラーになります。

  • 更新前ログ取得モード又はログレスモードの更新トランザクションとの間でデッドロックが発生する場合があります。更新トランザクションをエラーにしないようにするには,pd_deadlock_priority_use = Yを指定してください。デッドロックが発生した場合は,pdholdコマンドが取得したバックアップ閉塞の排他をすべて解除し,再度同じバックアップ閉塞処理が繰り返されます。このリトライ処理は,最大5回繰り返されます。5回目のリトライ処理でもデッドロックが発生する場合は,pdholdコマンドが取得したバックアップ閉塞の排他をすべて解除して,pdholdコマンドをエラーにします。

  • 更新前ログ取得モード又はログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラーになった場合,更新したRDエリアが障害閉塞状態になります。

参考

参照可能バックアップ閉塞,及び参照可能バックアップ閉塞(更新WAITモード)はデータベースの静止化ともいいます。

(2) 前提条件(RDエリアの構成について)

バックアップ取得対象RDエリアの全構成ファイルが一回のバックアップで取得できるように,RDエリアの構成ファイルをディスクに配置してください。

(3) 注意事項

  1. HiRDBが使用しているディスクのバックアップを取得している場合,HiRDBが異常終了又は強制終了するとそのバックアップは無効になります。この場合,再度バックアップを取得してください。

  2. RDエリアの状態が,更新可能バックアップ閉塞又は更新可能バックアップ閉塞(WAITモード)の場合,RDエリアの自動増分が抑止されます。そのため,これらの閉塞状態中に新規ページの確保が発生する大量データの追加又は更新業務の実行は避けてください。RDエリアの自動増分の抑止を解除するには,pdrelsコマンドでRDエリアの閉塞を解除してください。

  3. pdcopyコマンド以外(ほかの製品の機能)でバックアップを取得する場合,バックアップ取得中にデータベース構成変更ユティリティ(pdmodコマンド)を実行しないでください。

  4. バックアップ閉塞中にHiRDBが異常終了又は強制終了した場合,バックアップ閉塞の種類によってはHiRDBの再開始時にバックアップ閉塞を引き継ぎません。この場合,再度バックアップ閉塞を実施してバックアップを取得してください。HiRDB再開始時のバックアップ閉塞の引き継ぎ状態を次の表に示します。

    表6‒6 HiRDB再開始時のバックアップ閉塞の引き継ぎ状態

    バックアップ閉塞の種類

    再開始時に状態を引き継ぐかどうか

    参照可能バックアップ閉塞

    参照可能バックアップ閉塞(更新WAITモード)

    ×

    更新可能バックアップ閉塞

    ×

    更新可能バックアップ閉塞(WAITモード)

    ×

(凡例)

○:状態を引き継ぎます。

×:状態を引き継ぎません。

(4) 排他との関係

(a) バックアップ閉塞中の排他待ちタイムアウト

次に示すモードでバックアップ閉塞をする場合,排他待ちタイムアウトに注意してください。

  • 参照可能バックアップ閉塞(更新WAITモード)

  • 更新可能バックアップ閉塞

  • 更新可能バックアップ閉塞(WAITモード)

参照可能バックアップ閉塞(更新WAITモード)ではバックアップ閉塞を解除するまで,更新トランザクションがバックアップ閉塞RDエリア(資源種別0602)で排他待ちになります。更新可能バックアップ閉塞及び更新可能バックアップ閉塞(WAITモード)ではバックアップ閉塞を解除するまで,ログレスモード又は更新前ログ取得モードの更新トランザクションがバックアップ閉塞RDエリア(資源種別0602)で排他待ちになります。

このため,pd_lck_wait_timeoutオペランド又はクライアント環境定義のPDCWAITTIMEオペランドの指定値がバックアップ閉塞から閉塞解除までの時間より短いと更新トランザクションがエラーになります。エラーになる場合はこれらのオペランドの指定値を変更してください。

これらのモードでバックアップを取得する場合は,閉塞から閉塞解除までの時間が短かい(論理ボリュームを分割する間だけでよい)ミラーディスクの機能を利用してバックアップを取得するときにお勧めします。

(b) バックアップ閉塞時のデッドロック

複数のRDエリアを次に示すモードでバックアップ閉塞する場合,デッドロックに注意してください。

  • 参照可能バックアップ閉塞(更新WAITモード)

  • 更新可能バックアップ閉塞

  • 更新可能バックアップ閉塞(WAITモード)

参照可能バックアップ閉塞(更新WAITモード)では,更新トランザクションとの間でデッドロックになることがあります。更新可能バックアップ閉塞及び更新可能バックアップ閉塞(WAITモード)では,ログレスモード又は更新前ログ取得モードの更新トランザクションとの間でデッドロックになることがあります。更新トランザクションをエラーにしたくない場合は,pd_deadlock_priority_use = Yを指定してください。この場合,デッドロックが発生するとpdholdコマンドがエラーになるため,一定時間後にpdholdコマンドを再度実行してください。なお,pdholdコマンドに複数のRDエリアを指定した場合,全RDエリアのバックアップ閉塞処理を無効にします。

また,複数のRDエリアを複数回のpdholdコマンドでバックアップ閉塞すると,バックアップ閉塞RDエリアでデッドロックになることがあります。この場合,バックアップ閉塞したRDエリアを閉塞解除した後にpdholdコマンドを再度実行してください。このため,複数のRDエリアをバックアップ閉塞する場合は,1回のpdholdコマンドで複数のRDエリアを指定してください(成功するまで繰り返し実行してください)。

HiRDB/パラレルサーバの場合,異なるサーバにあるRDエリアを指定すると,グローバルデッドロックになることがあります。HiRDBではグローバルデッドロックを検知できないため,トランザクションがタイムアウトエラーになります。グローバルデッドロックを避けるには,複数のRDエリアを指定するとき,サーバ単位にpdholdコマンドを実行してください。

(5) 更新可能バックアップ閉塞中に出力されるシステムログ量

更新可能バックアップ閉塞中にデータベースを更新すると,追加のシステムログが出力されます。追加で出力されるシステムログ量の見積もりについては,マニュアル「HiRDB システム導入・設計ガイド」の「更新可能バックアップ閉塞中に出力されるシステムログ量」を参照してください。ただし,バックアップ閉塞中にHiRDBが異常終了又は強制終了した場合,HiRDBの再開始時にバックアップ閉塞を引き継ぎません(参照可能バックアップ閉塞を除く)。このため,システムログが追加で出力されることはありません。

(6) データベースの回復に必要なシステムログの求め方

データベースを最新の同期点に回復する場合(範囲指定の回復も含む),バックアップ取得後のシステムログが必要になります。データベースの回復に必要なシステムログの求め方を次の表に示します。

表6‒7 データベースの回復に必要なシステムログの求め方(バックアップ閉塞使用時)

条件

データベースの回復に必要なシステムログの求め方

  • 参照可能バックアップ閉塞の場合

  • 参照可能バックアップ閉塞(更新WAITモード)の場合

バックアップ取得以降のシステムログが必要になります。バックアップの取得前にpdloglsコマンドを実行して,現用のシステムログについて次に示す情報を記録しておいてください。

  • ログサーバプロセスのランID(Run ID)

  • システムログファイルの世代番号(Gen No.)

  • システムログファイルのファイルグループ名称(Group)

また,バックアップの取得日時を記録しておいてください。pdrstrコマンドに-Tオプションを指定する場合はこの時刻を指定します。

更新可能バックアップ閉塞(WAITモード)の場合

バックアップ閉塞コマンド実行開始時点からのシステムログが必要になります。バックアップ閉塞の実行前にpdloglsコマンドを実行して,次に示す情報を記録しておいてください。

  • ログサーバプロセスのランID(Run ID)

  • システムログファイルの世代番号(Gen No.)

  • システムログファイルのファイルグループ名称(Group)

また,バックアップ閉塞実行開始日時を記録しておいてください。pdrstrコマンドに-Tオプションを指定する場合はこの時刻を指定します。

更新可能バックアップ閉塞の場合

データベースの回復に必要なシステムログの開始位置を表示するKFPS02183-Iメッセージを参照してください。

更新可能バックアップ閉塞前のKFPS02183-Iメッセージに表示されたシステムログファイルのファイルグループ名,世代番号,シンクポイントダンプ取得開始時刻がデータベースの回復に必要なシステムログの開始位置を示しています。ログサーバプロセスのランIDはpdloglsコマンドで確認してください。

pdrstrコマンドに-Tオプションを指定する場合は,シンクポイントダンプ取得開始時刻を指定します。

注※ pd_spd_assurance_msg=Nを指定すると,KFPS02183-Iメッセージは出力されません。