Hitachi

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


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エリアのバックアップを取得します。

バックアップの取得方法については,マニュアル「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データベースの定義追加,定義変更,または定義削除を行う

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

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

(7) HiRDBを正常終了する

pdstopコマンドでHiRDBを正常終了します。必ず正常終了させてください。

(8) pd_structured_shmpool_dicsizeオペランドの指定値を変更する

次に示す場合は,システム共通定義の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データベースにアクセスできるようになります。