5.6.3 SDBデータベースの定義追加,定義変更,または定義削除の手順(各手順の詳細)
SDBデータベースの定義追加,定義変更,または定義削除をする際の,各手順の詳細について説明します。
- 注意事項
-
【4V FMB,4V AFM】の表記がある個所の説明は,4V FMBまたは4V AFMのSDBデータベースの定義追加,定義変更,または定義削除をする際に実行する操作です。SD FMBのSDBデータベースの定義追加,定義変更,または定義削除をする際は,実行する必要がない操作です。
- 〈この項の構成〉
-
(1) TP1/FSPを停止する【4V FMB,4V AFM】
TP1/FSPのeesvstopコマンドでTP1/FSPを停止します。この操作によってオンラインが停止状態になります。
(2) RDエリアのバックアップを取得する
pdcopyコマンドで,次に示すRDエリアのバックアップを取得します。
-
マスタディレクトリ用RDエリア
-
データディレクトリ用RDエリア
-
データディクショナリ用RDエリア
-
処理対象のSDBデータベースを格納しているユーザ用RDエリア(レコードおよびインデクスを格納しているユーザ用RDエリア)
バックアップの取得方法については,マニュアル「HiRDB システム運用ガイド」の「バックアップの取得方法」を参照してください。
(3) レコードをアンロードする
SDBデータベースの定義変更をする場合は,pdsdbrogコマンドでレコードのアンロードを実行します。ただし,*ALTER DICTIONARY文で最下位のレコード型とその親子集合の追加の定義変更の場合は,アンロードは不要です。
- 注意事項
-
SD FMBのSDBデータベースの定義変更は,SDBデータベースの再定義となります。そのため,SD FMBのSDBデータベースの定義変更をする場合は,レコードのアンロードを必ず実行してください。
分割格納条件の変更機能を使用して,既存のRDエリアを変更(分割または統合)する場合,pdsdbdefコマンドの実行時に変更(分割または統合)対象のRDエリアに格納されているデータが削除されることがあるため,削除対象のデータが格納されているRDエリアのデータをアンロードしておく必要があります。定義変更とRDエリアに格納されているデータの削除の関係については,「表11-23 RDエリアの定義変更時のデータの削除有無(格納条件指定の横分割の場合)」または「表11-24 RDエリアの定義変更時のデータの削除有無(境界値指定の横分割の場合)」を参照してください。
- ■アンロードが必要となる範囲
-
定義変更によってアンロードが必要となる範囲について説明します。
-
SDBデータベースを再作成する場合
SDBデータベースに格納されている全データをアンロードします。
-
データ格納用RDエリアを分割する場合
分割元のRDエリア(分割対象のRDエリア)に格納されているデータをアンロードします。例を次に示します。
(例)定義変更によって境界値の範囲の一部を既存のRDエリアに分割する場合
-
データ格納用RDエリアを統合する場合
統合元のRDエリア(削除対象のRDエリア)に格納されているデータをアンロードします。例を次に示します。
(例1)定義変更によって削除されるRDエリアが,定義変更後には存在しない場合
(例2)定義変更によって削除されるRDエリアが,定義変更後にも存在する場合
-
データ格納用RDエリアを削除する場合
削除対象のRDエリアに格納されているデータをアンロードします。
-
なお,pdsdbrogコマンドを実行する前にpdsdbarc -aコマンドを実行して,全ユニットの常用常駐領域のSDBディレクトリ情報が一致しているかどうかを確認してください。確認方法については,「5.9.1 常用常駐領域のSDBディレクトリ情報の確認方法(実行系ユニットの場合)」を参照してください。
(4) 待機系ユニットを終了する
高速系切り替え機能を使用している場合は,HAモニタのmonsbystpコマンドですべての待機系ユニットを終了してください。
(5) SDBデータベースの定義追加,定義変更,または定義削除を行う
-
SDBデータベースの定義追加をする場合
「5.6.4 SDBデータベースの定義追加」を参照してください。
-
SDBデータベースの定義変更をする場合
「5.6.5 SDBデータベースの定義変更」を参照してください。
-
SDBデータベースの定義削除をする場合
「5.6.6 SDBデータベースの定義削除」を参照してください。
(6) SDBディレクトリ情報ファイルを作成して配布する
pdsdbdefコマンドで,SDBディレクトリ情報ファイルを作成して全ユニット(高速系切り替え機能を使用している場合は待機系ユニットも含む)に配布してください。SDBディレクトリ情報ファイルの配布方法の詳細については,「5.8.1 SDBディレクトリ情報ファイルを作成して配布する場合」を参照してください。
(7) HiRDBを正常終了する
pdstopコマンドでHiRDBを正常終了します。必ず正常終了させてください。
(8) pd_structured_shmpool_dicsizeオペランドの指定値を変更する
次に示す場合は,システム共通定義のpd_structured_shmpool_dicsizeオペランドの指定値を変更してください。
-
SDBディレクトリ情報の合計長が,pd_structured_shmpool_dicsizeオペランドの指定値を超えている場合
-
SDBディレクトリ情報の合計長が,pd_structured_shmpool_dicsizeオペランドの指定値に比べてかなり小さい場合
SDBディレクトリ情報の合計長は,(6)でpdsdbdefコマンドを実行した際に出力されるKFPB61231-Iメッセージ(sizeに表示されます)で確認できます。
(9) HiRDBを正常開始する
pdstartコマンドでHiRDBを正常開始します。SDBディレクトリ情報ファイル中のSDBディレクトリ情報が常用常駐領域に常駐されます。
(4)で待機系ユニットを終了している場合は,pdstart -qコマンドですべての待機系ユニットを開始してください。
(10) 全ユニットのSDBディレクトリ情報が一致していることを確認する
pdsdbarc -cコマンドを実行して,SDBディレクトリ情報の最終更新日時のチェックを行い,全ユニットのSDBディレクトリ情報が一致していることを確認してください。
チェックの結果,問題がある場合は,全ユニットに同じSDBディレクトリ情報ファイルが配布されていません。この場合,pdsdbdefコマンドで,SDBディレクトリ情報ファイルを配布し直してください。そのあとで,HiRDBを再起動してください。
なお,「(11) SDBデータベースのデータロードを実行する」を行う場合は,pdsdbarc -aコマンドを実行して,全ユニットの常用常駐領域のSDBディレクトリ情報が一致しているかどうかを確認してください。確認方法については,「5.9.1 常用常駐領域のSDBディレクトリ情報の確認方法(実行系ユニットの場合)」を参照してください。
(11) SDBデータベースのデータロードを実行する
(3)でレコードをアンロードした場合,pdsdblodコマンドでSDBデータベースのデータロードを実行します。構成要素の変更など,レコード型の形式を変更した場合は,(3)で作成したアンロードファイルの内容を加工する必要があります。
- ■データロードが必要となる範囲
-
定義変更によってアンロードを行った場合のSDBデータベースのデータロードが必要となる範囲について説明します。
-
SDBデータベースを再作成する場合
再作成したSDBデータベース全体に対して,pdsdblodコマンドでデータロードを実行します。このとき,(3)で作成したアンロードファイルを使用します。
-
データ格納用RDエリアを分割する場合
分割した各RDエリアに対して,pdsdblodコマンドでデータロードを実行してください。データが削除されたRDエリアに対しては,初期データロード(purgeオペランドにyesを指定)を実行してください。それ以外のRDエリアに対しては,追加データロード(purgeオペランドにnoを指定)を実行してください。※このとき,(3)で作成したアンロードファイルを使用します。
例を次に示します。
(例)定義変更によって境界値の範囲の一部を既存のRDエリアに分割する場合
-
データ格納用RDエリアを統合する場合
格納する必要があるデータをpdsdblodコマンドでデータロードしてください。※
例を次に示します。
(例1)定義変更によって削除されるRDエリアが,定義変更後には存在しない場合
(例2)定義変更によって削除されるRDエリアが,定義変更後にも存在する場合
<4V FMBのSDBデータベースの場合>
統合先のRDエリアに対して,pdsdblodコマンドで追加データロード(purgeオペランドにnoを指定)を実行します。このとき,(3)で作成したアンロードファイルを使用します。
また,統合元のRDエリアが定義変更後も存在する場合は,統合元のRDエリアに対して,pdsdblodコマンドで初期データロード(purgeオペランドにyesを指定)を実行します。このとき,(3)で作成したアンロードファイルを使用します。
<4V AFMのSDBデータベースの場合>
統合先のRDエリアのデータをアンロードし,(3)でアンロードしたデータとマージします。そのあと,統合先のRDエリアに対して,pdsdblodコマンドで初期データロード(purgeオペランドにyesを指定)を実行します。また,統合元のRDエリアが定義変更後も存在する場合は,統合元のRDエリアに対しても,マージしたデータをpdsdblodコマンドで初期データロード(purgeオペランドにyesを指定)します。
-
データ格納用RDエリアを削除する場合
(3)でレコードをアンロードした場合,データのキー値を,統合先のRDエリアに対応する値に変更し,格納する必要があるデータをpdsdblodコマンドでデータロードしてください。
<4V FMBのSDBデータベースの場合>
キー値を変更したデータを,pdsdblodコマンドで追加データロード(purgeオペランドにnoを指定)してください。
<4V AFMのSDBデータベースの場合>
統合先のRDエリアに格納されているデータをアンロードし,キー値を変更したデータとマージします。そのあと,統合先のRDエリアに対して,マージしたデータをpdsdblodコマンドで初期データロード(purgeオペランドにyesを指定)してください。
- 注※
-
アンロードファイル中の格納条件に一致しないレコードはエラーとして扱われます。このため,pdsdblodコマンドのdivermsgオペランドにはnoputを指定して,エラー処理をスキップさせて,各RDエリアにデータロードを実行してください。
-
なお,pdsdblodコマンドを実行する前にpdsdbarc -aコマンドを実行して,全ユニットの常用常駐領域のSDBディレクトリ情報が一致しているかどうかを確認してください。確認方法については,「5.9.1 常用常駐領域のSDBディレクトリ情報の確認方法(実行系ユニットの場合)」を参照してください。
(12) TP1/FSPのUAP共用ライブラリを入れ替える【4V FMB,4V AFM】
TP1/EEサービス定義のmodule_dirオペランドに指定したUAP共用ライブラリ格納ディレクトリに,新しいUAP共用ライブラリを格納します。または,module_dirオペランドの指定を,新しいUAP共用ライブラリを格納したディレクトリに変更します。
(13) TP1/FSPを開始する【4V FMB,4V AFM】
TP1/FSPのeesvstartコマンドでTP1/FSPを開始します。
このとき,常用常駐領域中のSDBディレクトリ情報を入力情報にして,TP1/FSPのSDB定義情報領域にSDB定義情報が格納されます。
この作業が完了すると,定義追加,定義変更,または定義削除したSDBデータベースにアクセスできるようになります。