Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


5.7.3 SDBデータベースの定義追加または定義変更の手順(各手順の詳細)

SDBデータベースの定義追加または定義変更をする際の,各手順の詳細について説明します。

注意事項

【4V FMB,4V AFM】の表記がある個所の説明は,4V FMBまたは4V AFMのSDBデータベースの定義追加または定義変更をする際に実行する操作です。SD FMBのSDBデータベースの定義追加をする際は,実行する必要がない操作です。

〈この項の構成〉

(1) SDBディレクトリ情報ファイルを退避する

SDBデータベースの定義追加または定義変更の作業中に障害が発生した際に備えて,作業前の状態に戻すために,SDBディレクトリ情報ファイルを退避しておいてください。

(2) RDエリアのバックアップを取得する

pdcopyコマンドで,次に示すRDエリアのバックアップを取得してください。

バックアップの取得方法については,マニュアル「HiRDB システム運用ガイド」の「バックアップの取得方法」を参照してください。

(3) SDBデータベースの定義追加または定義変更を行う

(4) SDBディレクトリ情報ファイルを作成して配布する

pdsdbdefコマンドで,SDBディレクトリ情報ファイルを作成して全ユニット(高速系切り替え機能を使用している場合は待機系ユニットも含む)に配布してください。SDBディレクトリ情報ファイルの配布方法の詳細については,「5.8.1 SDBディレクトリ情報ファイルを作成して配布する場合」を参照してください。

pdsdbdefコマンドを実行してSDBディレクトリ情報ファイルを作成すると,KFPB61231-Iメッセージが出力されます。このメッセージに,SDBディレクトリ情報の長さが表示されます。

(例)
KFPB61231-I SDB directory information file assigned, file="/home/user01/pdsdb/pdsdbdir",
num=48, size=577208, time stamp=2012120615420155(2012120615183822)

出力内容の説明:

  • file:SDBディレクトリ情報ファイル名

  • num:SDBディレクトリ情報の数

  • size:SDBディレクトリ情報の合計長(単位:バイト)

  • time stamp:SDBディレクトリ情報の最終更新日時

    ( )内はSDB定義文の最終更新日時

sizeにSDBディレクトリ情報の長さ(単位:バイト)が表示されます。sizeに表示された値が,pd_structured_shmpool_dicsizeオペランド(SDBディレクトリ情報の常駐領域サイズ)の指定値より大きい場合,SDBディレクトリ情報を事前常駐領域に常駐できません。この場合,HiRDBを一度停止してpd_structured_shmpool_dicsizeオペランドの指定値を大きくする必要があります。

(5) 待機系ユニットを再起動する

高速系切り替え機能を使用している場合は,HAモニタのmonsbystpコマンドですべての待機系ユニットをいったん終了し,pdstart -qコマンドですべての待機系ユニットを開始してください。

待機系ユニットを再起動することによって,SDBディレクトリ情報が常用常駐領域に常駐されます。

待機系ユニットが開始したあと,すべての待機系ユニットで,常用常駐領域に常駐したSDBディレクトリ情報が一致しているかどうかを確認してください。確認方法については,「5.9.2 常用常駐領域のSDBディレクトリ情報の確認方法(待機系ユニットの場合)」を参照してください。

参考

4V FMBまたは4V AFMのSDBデータベースの定義追加または定義変更をする場合に,実行系と待機系の全ユニットでSDBディレクトリ情報を一致させる理由を次に示します。

  • 実行系と待機系のユニットのうち,SDBディレクトリ情報が一致しないユニットが1つでもあると,新規に追加したTP1サーバが一致していないSDBディレクトリ情報を基にSDB定義情報領域を作成してしまうおそれがあります。その結果,SDB定義情報領域中の情報とUAP共用ライブラリが不整合な状態になり,SDBデータベースを操作するAPIの実行がエラーになります。

(6) SDBディレクトリ情報を事前常駐領域に常駐する

pdsdbarc -eコマンドで,SDBディレクトリ情報を事前常駐領域に常駐します。

pdsdbarc -eコマンドの実行時,HiRDB/SDは,事前常駐領域に常駐したSDBディレクトリ情報の最終更新日時などをチェックします。チェックの結果,最終更新日時の不整合を検知した場合,不整合を検知したSDBディレクトリ情報を無効状態にします。無効状態のSDBディレクトリ情報は,(8)の操作で事前常駐領域を常用常駐領域に切り替える際,切り替えの対象外となります。切り替えの対象外となったSDBディレクトリ情報を使用しているユニット(フロントエンドサーバまたはバックエンドサーバ)を経由するAPIまたはDMLはエラーになります。そのため,最終更新日時の不整合が検知された場合,出力されたメッセージに従って対処し,事前常駐領域のSDBディレクトリ情報を正常な状態にしてください。

(7) SDB定義情報を取得して,TP1/FSPのSDB定義情報領域(副)に格納する【4V FMB,4V AFM】

TP1/FSPのeesdhchg -bコマンドでSDB定義情報を取得し,SDB定義情報領域(副)に格納します(事前常駐領域中のSDBディレクトリ情報が入力情報になります)。

SDB定義情報を取得する方法については,マニュアル「TP1/Financial Service Platform 使用の手引」の「SDBハンドラ機能」の「SDB定義情報の事前取得」を参照してください。

(8) トランザクションを静止化する

(9) 事前常駐領域を常用常駐領域に切り替える

pdsdbarc -w -qコマンドで,事前常駐領域を常用常駐領域に切り替えます。pdsdbarc -w -qコマンドはユニットごとに実行します。この操作は全ユニットで実行してください。

参考

pdsdbarc -w -qコマンドは実行系ユニットに対してだけ実行できます。待機系ユニットについては,「(5) 待機系ユニットを再起動する」の操作で,常用常駐領域にSDBディレクトリ情報が常駐されます。

事前常駐領域中のSDBディレクトリ情報が無効状態の場合,事前常駐領域を常用常駐領域に切り替えることはできません。切り替えられなかったSDBディレクトリ情報を使用しているユニット(フロントエンドサーバまたはバックエンドサーバ)を経由するAPIまたはDMLはエラーになるため,無効状態のSDBディレクトリ情報を次に示すどちらかの方法で正常な状態にしてください。

(10) TP1/FSPのUAP共用ライブラリを入れ替える【4V FMB,4V AFM】

TP1/FSPのeechglibコマンドで,TP1/FSPのUAP共用ライブラリを入れ替えます。

(11) TP1/FSPのSDB定義情報領域の正副を切り替える【4V FMB,4V AFM】

TP1/FSPのeesdhchg -cコマンドで,SDB定義情報領域の正副を切り替えます。この操作によって,定義追加または定義変更したSDBデータベースに対して,UAPからアクセスできるようになります。

(12) トランザクションの静止化を解除する

(12)の作業が完了すると,定義追加または定義変更したSDBデータベースにアクセスできるようになります。