5.11.2 SDBデータベースの再編成の手順
SDBデータベースの再編成手順(pdsdbrogコマンドでアンロードしたレコードを同じSDBデータベースにデータロードする場合の手順)を次の図に示します。
- 注意事項
-
-
SDBデータベースが横分割されている場合,アンロードとデータロードの実行単位を合わせてください。アンロードはRDエリア単位で実行するため,データロードもそれに合わせてRDエリア単位で実行してください。実行単位を合わせないと,SDBデータベースが正しく格納されません。
-
レコードをアンロードしてからデータロードするまでの間に,処理対象のSDBデータベース定義およびSDBデータベース格納定義を変更しないでください。変更した場合,レコードが正しく格納されないことがあります。
-
レコードをアンロードしてからデータロードするまでの間に,処理対象のデータベースを更新しないでください。データベースを更新した場合,更新したレコード実現値はデータロードの対象外になります。
-
各手順を以降で説明します。
- 〈この項の構成〉
(1) 全ユニットのSDBディレクトリ情報が一致しているかどうかを確認する
pdsdbarc -a
pdsdbarcコマンドでSDBディレクトリ情報に関する情報を表示し,全ユニットの常用常駐領域のSDBディレクトリ情報が一致しているかどうかを確認してください。確認方法については,「5.9 全ユニットのSDBディレクトリ情報が一致しているか確認する方法」を参照してください。
確認した結果,SDBディレクトリ情報が不一致の場合は,pdsdbrogコマンドを実行できません。
(2) 処理対象のRDエリアを閉塞する
pdhold -r RDエリア名,RDエリア名 …
pdholdコマンドで処理対象のRDエリアを閉塞します。
(3) アンロードを実行する
pdsdbrog 制御文ファイル名
pdsdbrogコマンドでレコードをアンロードします。
(4) プリフィクス部を設定する
プリフィクス部のページ切り替えフラグの指定,または事前割り当てページ数の指定値の変更が必要な場合は,アンロードデータファイルを直接修正して,ページ切り替えフラグまたは事前割り当てページ数を設定してください。ページ切り替えフラグを設定する場合は,「13.8 ページ切り替えフラグの扱い【4V FMB,4V AFM】」を参照してください。
(5) データロードを実行する
pdsdblod 制御文ファイル名
pdsdblodコマンドで,(3)でアンロードしたレコードをデータロードします。
-
インナレプリカ機能を使用している場合,アンロード対象RDエリアとデータロード対象RDエリアの世代番号が同じになるようにしてください。同じにするには,次に示すどちらかの方法でアンロードおよびデータロードを実行してください。
-
pdsdbrog制御文およびpdsdblod制御文のenvironment文のgenerationオペランドに指定する処理対象RDエリアの世代番号を同じにする
-
アンロードしてからデータロードするまでの間に,カレントRDエリアを変更しないようにする(generationオペランドを指定しない場合)
generationオペランドを指定しない場合,処理対象のRDエリアはカレントRDエリアになります。
- 注意事項
-
アンロード時とデータロード時で,カレントRDエリアを変更してしまった場合,アンロード対象RDエリアと異なるRDエリアにデータロードが実行されてしまいます。
-
-
pdsdblod制御文の各オペランドには,次の表に示す値を指定してください。間違った値を指定すると,レコードが正しく格納されません。
表5‒3 pdsdblod制御文の各オペランドに指定する値(pdsdbrogコマンドでアンロードしたレコードをデータロードする場合) 項番
オペランド
オペランドの指定値
1
environment文
schema
pdsdbrog制御文のenvironment文のschemaオペランドに指定したSDBデータベース名を指定してください。
2
purge
yesを指定してください。
3
generation
pdsdbrog制御文のenvironment文のgenerationオペランドに指定した世代番号を指定してください。pdsdbrog制御文のenvironment文のgenerationオペランドを省略した場合は,このオペランドも省略してください。
4
上記以外のオペランド
任意の値を指定してください。
5
load文
type
4V FMBまたはSD FMBのSDBデータベースの場合はtreeを,4V AFMのSDBデータベースの場合はsingleを指定してください。
6
record
pdsdbrog制御文のunload文のrecordオペランドに指定したレコード型名を指定してください。
7
server
pdsdbrog制御文のunload文のserverオペランドに指定したバックエンドサーバ名を指定してください。pdsdbrog制御文のunload文のserverオペランドを省略した場合は,省略してください。
8
area
pdsdbrog制御文のunload文のareaオペランドに指定したRDエリア名を指定してください。pdsdbrog制御文のunload文のareaオペランドを省略した場合は,省略してください。
9
data
pdsdbrog制御文のunload文のunldfileオペランドに指定したアンロードデータファイル名を指定してください。
10
prefix
pdsdbrog制御文のunload文のprefixオペランドに指定したプリフィクス長を指定してください。
11
seqkeyck
省略するか,またはyesを指定してください。
12
上記以外のオペランド
任意の値を指定してください。
13
dbinf文※
userpflg
pdsdbrog制御文のdbinf文のuserpflgオペランドに指定した位置を指定してください。pdsdbrog制御文のdbinf文のuserpflgオペランドを省略した場合は,省略してください。
14
pagenum
pdsdbrog制御文のdbinf文のpagenumオペランドに指定した位置を指定してください。pdsdbrog制御文のdbinf文のpagenumオペランドを省略した場合は,省略してください。
15
上記以外のオペランド
任意の値を指定してください。
16
idxload文
すべてのオペランド
任意の値を指定してください。
(6) RDエリアの閉塞を解除する
pdrels -r RDエリア名,RDエリア名 …
pdrelsコマンドでRDエリアの閉塞を解除します。