4.1.2 参照可能モード(-M r)でバックアップを取得する場合

参照可能モードでバックアップを取得する場合,インメモリデータ処理を実行していないときの運用と異なる点について説明します。

<この項の構成>
(1) 同時に更新業務を実行できる
(2) バックアップ取得の仕組み

(1) 同時に更新業務を実行できる

参照可能モードでバックアップを取得する場合,同時に更新業務を実行できます(RDエリアのバックアップを取得しながら,インメモリデータバッファの内容を更新できます)。

(2) バックアップ取得の仕組み

参照可能モードでバックアップを取得する場合,通常はグローバルバッファの更新情報がRDエリアに書き込まれてから,バックアップが取得されます。これによって,最新の状態のバックアップが取得できます。

しかし,インメモリRDエリアのバックアップを参照可能モードで取得する場合,インメモリデータバッファの更新情報はRDエリアに書き込まれません。そのため,いったんインメモリデータバッファとRDエリアの同期を取り,インメモリデータバッファの更新情報をRDエリアに書き込んでからバックアップを取得してください。

バックアップ取得の手順
参照可能モードでバックアップを取得する場合の手順を次に示します。
  1. pdhold -bコマンドでインメモリデータバッファとRDエリアの同期を取ります。
  2. pdlogswapコマンドでシステムログファイルをスワップします。
  3. pdrelsコマンドでRDエリアの閉塞を解除します。
  4. pdcopy -M rコマンドでRDエリアのバックアップを取得します。
    バックアップの取得方法については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
  5. 更新業務を開始します。
    参考
    3.2(2)(c) インメモリデータバッファとRDエリアの同期を取る」に,運用の流れの中でのバックアップの取得手順が記載されています。
    ポイント
    通常はバックアップとバックアップ取得時点以降のログがあれば,RDエリアを最新の状態に回復できますが,DB非同期状態のときにバックアップを取得した場合,バックアップ取得以前のログも必要になります。
    RDエリアを最新の状態に回復するには,インメモリ化した時点(または前回の同期取得時点)からのログが必要になります。DB非同期状態でバックアップを取得した場合の例を次に示します。
DB非同期状態でバックアップを取得した場合の例
DB非同期状態でバックアップを取得した場合の例を次の図に示します。

図4-2 DB非同期状態でバックアップを取得した場合の例

[図データ]
[障害発生時の状況]
9:00にRDエリアをインメモリ化し,その後インメモリデータバッファの内容を更新しました。DB非同期状態のまま,10:00に参照可能モードでRDエリアのバックアップを取得しました。その後,再び更新業務を行ったあと,更新内容をRDエリアに書き込むときに,インメモリデータバッファとRDエリアに障害が発生しました。
[障害回復時の流れ]
この場合,バックアップを取得した時刻は10:00ですが,バックアップファイルの内容は9:00の時点のままになっています。RDエリアを最新(11:00)の状態に回復するには,10:00に取得したバックアップファイルと9:00からのログが必要になります。
通常では,バックアップ取得時点より古いログは使用しません。通常と同じ運用ができるように,インメモリRDエリアのバックアップを参照可能モードで取得する場合は,インメモリデータバッファとRDエリアの同期を取ったあと(DB同期状態のとき)に行うことをお勧めします。
参考
参照・更新不可能モード(-M x)でバックアップを取得する場合は,必ずRDエリアをpdhold -cコマンドで閉塞クローズ状態にするため,インメモリデータバッファの更新情報がRDエリアに書き込まれてDB同期状態になります。したがって,RDエリアを最新の時点に回復する場合は,バックアップとバックアップ取得時点以降のログを使うという通常と同じ考えでRDエリアを回復できます。