2.23.1 pdconfchkの形式と規則
(1) 機能
HiRDBを開始するために必要な,システム定義の内容をチェックします。
システム定義が誤っている場合は,誤りの箇所及び詳細を表示します。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
pdconfchk 〔-d サブディレクトリ名〕 〔-n〕 〔-l〕 〔-u ユニット識別子〕
(4) オプション
(a) -d サブディレクトリ名 〜<パス名>
チェック対象のHiRDBシステム定義ファイルを格納したサブディレクトリを,$PDDIR/conf又は$PDCONFPATHからの相対パス名で指定します。$PDDIR/confとは,ユニット制御情報定義ファイルを格納しているディレクトリを意味します。$PDCONFPATHとは,それ以外のHiRDBシステム定義ファイルを格納しているディレクトリを意味します。
チェックするHiRDBシステム定義ファイルを格納する場所を,次に示します。
HiRDBシステム定義ファイルの種類 |
-dオプションあり |
-dオプションなし |
---|---|---|
ユニット制御情報定義ファイル |
$PDDIR/conf/サブディレクトリ/ |
$PDDIR/conf/ |
上記以外 |
$PDCONFPATH/サブディレクトリ/ |
$PDCONFPATH/ |
- <適用基準>
-
運用している環境のHiRDBシステム定義を変更する前に,変更したHiRDBシステム定義をサブディレクトリ下に格納してチェックできます。これによって,変更したHiRDBシステム定義を,事前にチェックできます。
- <規則>
-
-
指定するサブディレクトリは,事前に作成しておいてください。
-
サブディレクトリ下には,変更したHiRDBシステム定義ファイルだけでなく,すべてのHiRDBシステム定義ファイルを格納してください。
-
HiRDB/シングルサーバの場合,$PDDIR/confと$PDCONFPATHには,同じパス名が設定されます。
-
HiRDB/パラレルサーバの場合,$PDDIR/confと$PDCONFPATHが指すパス名が異なることがあります(例えば,HiRDBシステム定義ファイルを共用化した場合など)。その場合,両方のパスに同一名称でサブディレクトリを作成してください。
また,ユニットごとに$PDDIR/conf,$PDCONFPATHの設定が異なる場合は,ユニットごとに$PDDIR/conf下と$PDCONFPATH下にサブディレクトリを作成し,HiRDBシステム定義ファイルを格納してください。
-
$PDDIR/conf/サブディレクトリ,及び$PDCONFPATH/サブディレクトリは,最大220バイトです。名称が220バイトを超えないようにしてください。
-
pdchgconfコマンドで変更するシステム定義をチェックする場合は,$PDDIR/conf/chgconfに変更後のシステム定義ファイルを格納し,pdconfchkコマンド実行時に-d chgconfを指定してください。
-
系切り替え機能を使用している場合,現用系の定義をチェックするため,サブディレクトリは現用系に作成してください。また,すべての実行系ユニットを現用系に切り替えてからpdconfchkコマンドを実行してください。なお,システムマネジャがあるユニットがオフラインのときは,現用系のシステムマネジャがあるユニットでpdconfchk -dコマンドを実行してください。
-
HiRDB/シングルサーバの場合,サブディレクトリ下のHiRDBシステム定義ファイルのオペランド指定値は,$PDDIR/conf又は$PDCONFPATH下のオペランド指定値と一致させる必要があります。
・pdunitオペランドの-xオプションに指定するホスト名
・pd_hostnameオペランドに指定するホスト名
-
HiRDB/パラレルサーバの場合,サブディレクトリ下のHiRDBシステム定義ファイルのオペランド指定値は,$PDDIR/conf又は$PDCONFPATH下のオペランド指定値と一致させる必要があります。
・システムマネジャがあるユニットのpdunitオペランドの-xオプションに指定するホスト名
・システムマネジャがあるユニットのpd_hostnameオペランドに指定するホスト名
-
(b) -n
システムファイルのチェックと,アクセス権限のチェックをスキップしたい場合に指定します。pdfmkfsコマンドやpdloginitコマンドでシステムファイルを作成していないときなどに利用します。
(c) -l
ログ同期方式のリアルタイムSANレプリケーションを適用している場合,システムファイルのチェック及びアクセス権限のチェックの対象として,ログ適用処理に必要な副ステータスファイル,及び副シンクポイントダンプファイルを含めるときに指定します。
-lオプションは,次に示す条件をすべて満たす場合に指定できます。条件を満たしていない場合,pdconfchkコマンドがエラー終了します。
-
システム定義のpd_rise_useオペランドにYを指定している。
-
システム定義のpd_rise_pairvolume_combinationオペランドにsyssyncを指定している。
-
システム定義のpd_rise_fence_levelオペランドにdata又はneverを指定している。
(d) -u ユニット識別子 〜<識別子>((4文字))
このオプションは,HiRDB/パラレルサーバ限定のオプションです。
特定のユニットをチェック対象にしたい場合に指定します。このオプションを指定すると,システムマネジャがあるユニットとこのオプションで指定したユニットの定義チェックを行います。
- <規則>
-
-
このオプションは,システムマネジャがあるサーバマシンで実行できます。
-
このオプションにシステムマネジャがあるユニットを指定した場合は,サーバマシン間のチェックを行いません。
-
(5) チェックする内容
-
文法のチェック
文法チェックの結果は標準出力又は標準エラー出力に出力されます。
-
システムファイルのチェック
システムログファイル,シンクポイントダンプファイル,及びステータスファイルの有無をチェックします。
-
アクセス権限のチェック
次のことをチェックします。
-
HiRDB管理者がHiRDBファイルをアクセスできるかどうか
-
HiRDB管理者がhostsファイルをアクセスできるかどうか
-
システム定義のpd_tmp_directoryオペランドで指定したディレクトリの有無,及びHiRDB管理者がアクセスできるかどうか
ただし,pd_tmp_directoryオペランドを省略した場合はチェックしません。
-
システムファイルの重複指定チェック
システムログファイル,シンクポイントダンプファイル,及びステータスファイルが重複していないかどうかをチェックします。
-
ホストのチェック
ホスト名がHOSTSファイルに記述されているかどうかをチェックします。
-
サーバマシン間のチェック(HiRDB/パラレルサーバの場合)
システムマネジャのサーバマシンを基準に,サーバマシン間のチェックをします。
pdconfchkコマンドでチェックできるシステム定義のオペランドについては,マニュアル「HiRDB Version 9 システム定義」の「pdconfchkコマンドでチェックできるオペランド」を参照してください。
(6) 規則
-
pdconfchkコマンドは,HiRDBの稼働に関係なく実行できます。
-
pdconfchkコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
(7) 注意事項
-
正常終了時は,KFPS05007-I return code=0を出力し終了します。正常終了以外の場合には,KFPS05007-I return code=4(警告),又はKFPS05007-I return code=8(エラー)の終了メッセージの前に原因となるメッセージを出力します。
-
サーバマシン間のチェックで,コメント部分(#以降の部分),及びコメントだけの行はエラー検知の対象としません。
-
サーバマシン間のチェックでエラーがあった場合,システムマネジャがあるサーバマシンのシステム定義の内容も見直してください。システムマネジャがあるサーバマシンのシステム定義の内容が誤っていることもあります。
-
サーバマシン間のチェックで,定義文の前方及び文中にあるタブとスペースはチェック対象となります。定義文の後方にあるタブとスペースはチェック対象外となります。
-
サーバマシン間のチェックで,システムマネジャとシステムマネジャ以外の定義の順番が同じでない場合,順番の異なる定義を誤りとします。
(例) システムマネジャの定義 システムマネジャ以外の定義 A B B A
この場合,システムマネジャの定義Bとシステムマネジャ以外の定義Bを,Different definitionとして表示します。
-
pdconfchkコマンドでKFPY01012-Eメッセージが出力された場合,pdconfchkコマンドはKFPS05007-I return code=0で終了することがあります。この場合,エラーメッセージの原因を取り除いてください。
-
pdconfchkコマンドを実行してKFPS05062-Wメッセージが出力された場合でも,pdconfchkコマンドはKFPS05007-I(return code=0)で終了します。
-
pdconfchkコマンドが正常に動作した場合でも,KFPO00107-Eメッセージが出力されることがあります。pdconfchkコマンドでの定義チェックの結果はKFPS05007-Iメッセージで確認してください。
-
系切り替え機能を使用している場合,指定しているオプションによってpdconfchkコマンド実行時にチェック対象となる系が異なります。
- -dオプション以外を指定している場合
-
実行系がチェック対象となります。ただし,HiRDBシステムが停止している又は定義エラーなどによって実行系かどうかを判別できないときは現用系がチェック対象になります。
- -dオプションを指定している場合
-
現用系がチェック対象となります。
(8) 出力形式
<システムファイルの有無チェック,アクセス権限のチェック> [aa...a] bbbb cc...c dd...d ee...e <システムファイルの重複指定チェック> [aa...a] bbbb cc...c dd...d ee...e bbbb cc...c dd...d ee...e <ホストのチェック> [aa...a] bbbb cc...c dd...d ff...f <サーバマシン間のチェック(HiRDB/パラレルサーバの場合)> [aa...a] <gggg:hhhh> gggg; cc...c; line = iii <- hhhh; cc...c; nothing gggg; cc...c; nothing -> hhhh; cc...c; line = iii
[説明]
- aa...a:
-
チェックした項目のエラーの内容
- File not found:
-
ファイルがありません。次のどちらかの原因が考えられます。
-
パス名に使用できない文字を指定しています。
-
HiRDBファイル名の長さが制限(30文字)を超えました。
-
- Directory not found:
-
ディレクトリがありません。次のどちらかの原因が考えられます。
-
パス名に使用できない文字を指定しています。
-
システム定義のpd_tmp_directoryオペランドに指定したディレクトリがありません。
-
- File invalid:
-
ファイルが不正です。
- Directory invalid:
-
ディレクトリが不正です。ルートディレクトリ(/)を指定している場合は,別のディレクトリを指定してください。
- No Permission:
-
権限がありません。なお,システム定義のpd_tmp_directoryオペランドに指定したディレクトリの場合は777をチェックします。
- Duplicate filename:
-
ファイル名が重複しています。
- Hosts name not matched:
-
ホスト名が一致しません。
- Different definition:
-
システムマネジャとシステムマネジャ以外のユニットで異なる定義があります。
- bbbb:
-
ユニット識別子
- cc...c:
-
システム定義のファイル名
- dd...d:
-
オペランドの指定内容
- ee...e:
-
dd...dのオペランドで指定しているファイル名(絶対パス名)
- ff...f:
-
dd...dがpdstart,pdunit,又はpd_hostnameの場合に,定義されているホスト名
- gggg:
-
システムマネジャがあるユニットのユニット識別子
- hhhh:
-
システムマネジャ以外のユニットのユニット識別子
- iii:
-
システム定義のファイルの行番号
- <出力例>
[File not found] unt1 pdutsys pd_syssts_file_name_1 /dev/rdsys011/ut1sts1a ........1 [File invalid] unt1 pdutsys pd_syssts_file_name_3 /users/yyy/pddir ..............2 [No permission] unt1 bes1 pd_sts_file_name_1 /dev/rdsys011/bes1sts1a .......3 [Duplicate filename] unt1 fes1 pdlogadpf -d sys -g fes1log1 -a /dev/rdsys011/fes1log1 ........4 unt1 fes1 pdlogadpf -d sys -g fes1log1 -b /dev/rdsys011/fes1log1 ........4 unt1 bes1 pdlogadpf -d spd -g bes1spd1 -a /dev/rdsys011/fes1log1 ........4 [Hosts name not matched] unt1 pdsys pdstart -x dcm3500 .......................5 [Different definition] <unt1:unt2> unt1 pdsys line = 2 -> unt2 pdsys nothing ..............................6 unt1 pdsys nothing <- unt2 pdsys line = 5 .............................7
[説明]
-
unt1のpdutsysにあるpd_syssts_file_name_1オペランドに指定したファイルが見付かりません。
-
unt1のpdutsysにあるpd_syssts_file_name_3オペランドに指定したファイルが不正です。
-
unt1のbes1にあるpd_sts_file_name_1オペランドに指定したファイルにアクセス権限がありません。
-
unt1のfes1にあるpdlogadpf -d sys -g fes1log1オペランドの-aに指定しているファイル名と,次のファイル名が重複しています。
-
unt1のfes1にあるpdlogadpf -d sys -g fes1log1オペランドの-bに指定しているファイル名
-
unt1のbes1にあるpdlogadpf -d spd -g bes1spd1オペランドの-aに指定しているファイル名
-
-
unt1のホスト名と,unt1のpdsysにあるpdstart -x dcm3500オペランドで指定しているホスト名の設定が異なっています。
-
unt1のpdsysの2行目の定義が,unt2のpdsysにはありません。
-
unt2のpdsysの5行目の定義が,unt1のpdsysにはありません。
(9) 使用例
運用中のHiRDB/パラレルサーバ(ユニット1,ユニット2の構成)のシステム定義を変更します。変更するHiRDBシステム定義ファイルはユニット1のpdsvrcとします。
-
ユニット1とユニット2の$PDDIR/conf下と$PDCONFPATH下にサブディレクトリ「chk」を作成します。
-
各ユニットで,$PDDIR/conf下のpdutsysを$PDDIR/conf/chk/にコピーします。
-
各ユニットで,$PDCONFPATH下のHiRDBシステム定義ファイルを$PDCONFPATH/chk/にコピーします。
-
ユニット1の$PDCONFPATH/chk/pdsvrcの定義内容を変更します。
-
「pdconfchk -d chk」を実行します。※
-
内容に問題がなければ,pdstopコマンドでHiRDBを正常終了又は計画停止します。ただし,計画停止の場合は,変更できない定義があるため注意してください。
-
pdlogunldコマンドで,「アンロード待ち状態」のシステムログファイルをアンロードします。
-
4.で変更したHiRDBシステム定義ファイルを$PDCONFPATH下にコピーします。
-
pdstartコマンドでHiRDBを正常開始します。
- 注※
-
「pdconfchk -d chk」実行時に,チェックするHiRDBシステム定義ファイルの場所は次のようになります。