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エリアのバックアップを取得してください。
-
マスタディレクトリ用RDエリア
-
データディレクトリ用RDエリア
-
データディクショナリ用RDエリア
-
処理対象のSDBデータベースを格納しているユーザ用RDエリア(レコードおよびインデクスを格納しているユーザ用RDエリア)
バックアップの取得方法については,マニュアル「HiRDB システム運用ガイド」の「バックアップの取得方法」を参照してください。
(3) SDBデータベースの定義追加または定義変更を行う
-
SDBデータベースの定義追加をする場合
「5.7.4 SDBデータベースの定義追加」を参照してください。
-
SDBデータベースの定義変更をする場合
「5.7.5 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) トランザクションを静止化する
-
4V FMBまたは4V AFMのSDBデータベースの場合
TP1/FSPのeesvctl -sコマンドで,トランザクションを静止化します。eesvctl -sコマンドが正常終了して,完全にトランザクションが静止化したことを確認してから次の手順に進んでください。
- 注意事項
-
-
完全にトランザクションが静止化していない状態で次の手順を行った場合,データベース破壊やUAPの異常終了などが発生するおそれがあります。そのため,eesvctl -sコマンドが正常終了するまで,eesvctl -sを実行し続けてください。
-
「(9) 事前常駐領域を常用常駐領域に切り替える」の操作が完了するまでは,pdsdbdef,pdsdblod,pdsdbrog,およびpdsdbexeコマンドを実行しないでください。
-
-
SD FMBのSDBデータベースの場合
サービスを閉塞して,トランザクションを静止化します。サービスを閉塞するには,OpenTP1のスケジュール閉塞コマンドを実行します。詳細については,マニュアル「OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 運用と操作」を参照してください。
- 注意事項
-
-
完全にトランザクションが静止化していない状態で次の手順を行った場合,データベース破壊やUAPの異常終了などが発生するおそれがあります。
-
「(9) 事前常駐領域を常用常駐領域に切り替える」の操作が完了するまでは,pdsdbdef,pdsdblod,およびpdsdbrogコマンドを実行しないでください。
-
(9) 事前常駐領域を常用常駐領域に切り替える
pdsdbarc -w -qコマンドで,事前常駐領域を常用常駐領域に切り替えます。pdsdbarc -w -qコマンドはユニットごとに実行します。この操作は全ユニットで実行してください。
- 参考
-
pdsdbarc -w -qコマンドは実行系ユニットに対してだけ実行できます。待機系ユニットについては,「(5) 待機系ユニットを再起動する」の操作で,常用常駐領域にSDBディレクトリ情報が常駐されます。
事前常駐領域中のSDBディレクトリ情報が無効状態の場合,事前常駐領域を常用常駐領域に切り替えることはできません。切り替えられなかったSDBディレクトリ情報を使用しているユニット(フロントエンドサーバまたはバックエンドサーバ)を経由するAPIまたはDMLはエラーになるため,無効状態のSDBディレクトリ情報を次に示すどちらかの方法で正常な状態にしてください。
-
正しいSDBディレクトリ情報ファイルが配布済みの場合
事前常駐領域中のSDBディレクトリ情報が無効状態のユニットに対して,「(6) SDBディレクトリ情報を事前常駐領域に常駐する」から作業を再実行してください。
-
正しいSDBディレクトリ情報ファイルが未配布の場合
事前常駐領域中のSDBディレクトリ情報が無効状態のユニットに対して,pdsdbdefコマンドでSDBディレクトリ情報ファイルを配布し直してください。そのあとで,「(6) 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) トランザクションの静止化を解除する
-
4V FMBまたは4V AFMのSDBデータベースの場合
TP1/FSPのeesvctl -rコマンドで,トランザクションの静止化を解除します。
-
SD FMBのSDBデータベースの場合
サービスの閉塞を解除して,トランザクションの静止化を解除します。サービスの閉塞を解除するには,OpenTP1のスケジュール閉塞解除コマンドを実行します。詳細については,マニュアル「OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 運用と操作」を参照してください。
(12)の作業が完了すると,定義追加または定義変更したSDBデータベースにアクセスできるようになります。