3.3 オンライン業務に適用する場合

ここでは,インメモリデータ処理をオンライン業務に適用する場合の運用について,例題を使って説明します。

<この節の構成>
(1) 例題の条件
(2) コマンド実行手順

(1) 例題の条件

この例題での条件を次に示します。

運用の流れを次の図に示します。

図3-3 オンライン業務に適用する場合の運用の流れ

[図データ]

(2) コマンド実行手順

コマンドの実行手順を次に示します。

(a) RDエリアをインメモリ化する
  1. RDDATA01およびRDIDX01を閉塞クローズ状態にします。

    pdhold -r RDDATA01,RDIDX01 -c

  2. システムログファイルをスワップします。

    pdlogswap -d sys -w

  3. RDDATA01およびRDIDX01をインメモリ化します。

    pdmemdb -k stay -r RDDATA01,RDIDX01

    このとき,インメモリデータバッファとRDエリアは,DB同期状態になります。

    [図データ]

    なお,ここでは,複数のRDエリアを一度にインメモリ化しています。この場合の注意事項については,「3.5 複数のRDエリアを一度にインメモリ化する場合の注意事項」を参照してください。
  4. RDDATA01およびRDIDX01の閉塞クローズを解除します。

    pdrels -r RDDATA01,RDIDX01 -o

  5. RDDATA01およびRDIDX01のバックアップを取得します。

    pdcopy -m C:¥rdarea¥mast¥mast01 -M r
    -r RDDATA01,RDIDX01
    -b C:¥pdcopy¥backup01 -p C:¥pdcopy¥list01

    バックアップの取得方法については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。
    ポイント
    ここでは,RDエリアの閉塞クローズを解除してから参照可能モード(-M r)でバックアップを取得しています。通常と異なり,参照可能モードでバックアップを取得している間も更新ができます。このため,バックアップの取得中にオンライン業務を実行できます。インメモリRDエリアのバックアップ取得の仕組みについては,「4.1 バックアップを取得するときに気をつけること」を参照してください。
    注意
    インメモリ化するときのRDエリアの閉塞は,pdhold -cコマンドで行ってください。pdhold -cコマンドで閉塞クローズ状態にすることによって,ほかのトランザクションが対象RDエリアにアクセスできないようにします。
(b) オンライン業務を実行する
  1. オンライン業務を実行します。
    これによって,インメモリデータバッファの内容が更新され,DB非同期状態になります。

    [図データ]

(c) インメモリデータバッファとRDエリアの同期を取る
  1. インメモリデータバッファとRDエリアの同期を取ります。

    pdhold -r RDDATA01,RDIDX01 -c

    オンライン業務が終わったら,インメモリデータバッファのデータをRDエリアに書き込み,インメモリデータバッファとRDエリアの同期を取ります。これによって,DB同期状態になります。
    pdhold -cコマンドを実行すると,インメモリデータバッファのデータをRDエリアに書き込みます。

    [図データ]

    注意
    ここで,pdhold -cコマンドを使用しているのは,(d)でインメモリ化を解除するためです。インメモリ化を解除するときのRDエリアの閉塞は,pdhold -cコマンドで行います。pdhold -cコマンドで閉塞クローズ状態にすることによって,ほかのトランザクションが対象RDエリアにアクセスできないようにします。
(d) インメモリ化を解除する
  1. RDDATA01およびRDIDX01のインメモリ化を解除します。

    pdmemdb -k rels -r RDDATA01,RDIDX01

    インメモリデータバッファがなくなります。これ以降は,グローバルバッファを使用します。

    [図データ]

  2. RDDATA01およびRDIDX01の閉塞を解除します。

    pdrels -r RDDATA01,RDIDX01 -o