スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)

[目次][索引][前へ][次へ]

pdconfchkシステム定義のチェック

機能

HiRDBを開始するために必要な,システム定義の内容をチェックします。

システム定義が誤っている場合は,誤りの箇所及び詳細を表示します。

実行者

HiRDB管理者が実行できます。

形式

 
 pdconfchk 〔-d サブディレクトリ名〕 〔-n〕 〔-l〕
 

オプション

チェック対象のHiRDBシステム定義ファイルを格納したサブディレクトリを,$PDDIR/conf又は$PDCONFPATHからの相対パス名で指定します。$PDDIR/confとは,ユニット制御情報定義ファイルを格納しているディレクトリを意味します。$PDCONFPATHとは,それ以外のHiRDBシステム定義ファイルを格納しているディレクトリを意味します。

チェックするHiRDBシステム定義ファイルを格納する場所を,次に示します。

HiRDBシステム定義ファイルの種類 -dオプションあり -dオプションなし
ユニット制御情報定義ファイル $PDDIR/conf/サブディレクトリ/ $PDDIR/conf/
上記以外 $PDCONFPATH/サブディレクトリ/ $PDCONFPATH/

<適用基準>
運用している環境のHiRDBシステム定義を変更する前に,変更したHiRDBシステム定義をサブディレクトリ下に格納してチェックできます。これによって,変更したHiRDBシステム定義を,事前にチェックできます。

<規則>
  1. 指定するサブディレクトリは,事前に作成しておいてください。
  2. サブディレクトリ下には,変更したHiRDBシステム定義ファイルだけでなく,すべてのHiRDBシステム定義ファイルを格納してください。
  3. HiRDB/シングルサーバの場合,$PDDIR/confと$PDCONFPATHには,同じパス名が設定されます。
  4. HiRDB/パラレルサーバの場合,$PDDIR/confと$PDCONFPATHが指すパス名が異なることがあります(例えば,HiRDBシステム定義ファイルを共用化した場合など)。その場合,両方のパスに同一名称でサブディレクトリを作成してください。
    また,ユニットごとに$PDDIR/conf,$PDCONFPATHの設定が異なる場合は,ユニットごとに$PDDIR/conf下と$PDCONFPATH下にサブディレクトリを作成し,HiRDBシステム定義ファイルを格納してください。
  5. $PDDIR/conf/サブディレクトリ,及び$PDCONFPATH/サブディレクトリは,最大220バイトです。名称が220バイトを超えないようにしてください。
  6. pdchgconfコマンドで変更するシステム定義をチェックする場合は,$PDDIR/conf/chgconfに変更後のシステム定義ファイルを格納し,pdconfchkコマンド実行時に-d chgconfを指定してください。
  7. 系切り替え構成の場合,以下の点に注意してください。
    ・現用系の定義をチェックするため,サブディレクトリは現用系に作成してください。
    ・コマンドを実行する前に,すべての実行系ユニットを現用系にしてください。
    ・システムマネジャがオフラインの場合は,現用系のシステムマネジャがあるユニットでpdconfchk -dコマンドを実行してください。
  8. HiRDB/シングルサーバの場合,サブディレクトリ下の以下のオペランド指定値は,$PDDIR/conf,又は$PDCONFPATH下のオペランド指定値と一致している必要があります。
    ・pdunitオペランドの-xに指定するホスト名
    ・pd_hostnameオペランドに指定するホスト名
    HiRDB/パラレルサーバの場合,サブディレクトリ下の以下のオペランド指定値は,$PDDIR/conf,又は$PDCONFPATH下のオペランド指定値と一致している必要があります。
    ・システムマネジャがあるユニットのpdunitオペランドの-xに指定するホスト名
    ・システムマネジャがあるユニットのpd_hostnameオペランドに指定するホスト名

システムファイルのチェックと,アクセス権限のチェックをスキップしたい場合に指定します。pdfmkfsコマンドやpdloginitコマンドでシステムファイルを作成していないときなどに利用します。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合,システムファイルのチェック及びアクセス権限のチェックの対象として,ログ適用処理に必要な副ステータスファイル,及び副シンクポイントダンプファイルを含めるときに指定します。

-lオプションは,次に示す条件をすべて満たす場合に指定できます。条件を満たしていない場合,pdconfchkコマンドがエラー終了します。

チェックする内容

文法チェックの結果は標準出力又は標準エラー出力に出力されます。

システムログファイル,シンクポイントダンプファイル,及びステータスファイルの有無をチェックします。

次のことをチェックします。

システムログファイル,シンクポイントダンプファイル,及びステータスファイルが重複していないかどうかをチェックします。

ホスト名がHOSTSファイルに記述されているかどうかをチェックします。

システムマネジャのサーバマシンを基準に,サーバマシン間のチェックをします。

 

pdconfchkコマンドでチェックできるシステム定義のオペランドについては,マニュアル「HiRDB Version 8 システム定義」の「pdconfchkコマンドでチェックできるオペランド」を参照してください。

規則

  1. pdconfchkコマンドは,HiRDBの稼働に関係なく実行できます。
  2. pdconfchkコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

注意事項

  1. システム定義のチェックでエラーを検知しなかった場合は,何も表示しないでKFPS05007-I return code=0を出力し終了します。エラーを検知した場合は,KFPS05007-I return code=8を出力し終了します。
  2. サーバマシン間のチェックで,コメント部分(#以降の部分),及びコメントだけの行はエラー検知の対象としません。
  3. サーバマシン間のチェックでエラーがあった場合,システムマネジャがあるサーバマシンのシステム定義の内容も見直してください。システムマネジャがあるサーバマシンのシステム定義の内容が誤っていることもあります。
  4. サーバマシン間のチェックで,定義文の前方及び文中にあるタブとスペースはチェック対象となります。定義文の後方にあるタブとスペースはチェック対象外となります。
  5. サーバマシン間のチェックで,システムマネジャとシステムマネジャ以外の定義の順番が同じでない場合,順番の異なる定義を誤りとします。
     
    (例)
    システムマネジャの定義   システムマネジャ以外の定義
      A              B
      B              A
     
    この場合,システムマネジャの定義Bとシステムマネジャ以外の定義Bを,Different definitionとして表示します。
  6. pdconfchkコマンド実行時のリターンコードは,0の場合は正常終了,8の場合は異常終了(引数不正,又はpdconfchkコマンドの実行エラー)となります。
  7. pdconfchkコマンドでKFPY01012-Eメッセージが出力された場合,pdconfchkコマンドはKFPS05007-I return code=0で終了することがあります。この場合,エラーメッセージの原因を取り除いてください。
  8. pdconfchkコマンドを実行してKFPS05062-Wメッセージが出力された場合でも,pdconfchkコマンドはKFPS05007-I(return code=0)で終了します。
  9. pdconfchkコマンドが正常に動作した場合でも,KFPO00107-Eメッセージが出力されることがあります。pdconfchkコマンドでの定義チェックの結果はKFPS05007-Iメッセージで確認してください。
  10. 系切り替え構成の場合,pdconfchkのオプションにより,定義をチェックする系が異なります。
    コマンドオプション 定義をチェックするユニットの系
    pdconfchk(-dオプションなし) 実行系※1※2
    pdconfchk(-dオプションあり) 現用系
    注※1
    チェック対象のユニットが停止している場合,現用系をチェックします。
    注※2
    定義エラー等により,実行系かを判別できない場合は,現用系をチェックします。

出力形式

 
<システムファイルの有無チェック,アクセス権限のチェック>
 [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
 

[説明]
  1. unt1のpdutsysにあるpd_syssts_file_name_1オペランドに指定したファイルが見付かりません。
  2. unt1のpdutsysにあるpd_syssts_file_name_3オペランドに指定したファイルが不正です。
  3. unt1のbes1にあるpd_sts_file_name_1オペランドに指定したファイルにアクセス権限がありません。
  4. unt1のfes1にあるpdlogadpf -d sys -g fes1log1オペランドの-aに指定しているファイル名と,次のファイル名が重複しています。
    • unt1のfes1にあるpdlogadpf -d sys -g fes1log1オペランドの-bに指定しているファイル名
    • unt1のbes1にあるpdlogadpf -d spd -g bes1spd1オペランドの-aに指定しているファイル名
  5. unt1のホスト名と,unt1のpdsysにあるpdstart -x dcm3500オペランドで指定しているホスト名の設定が異なっています。
  6. unt1のpdsysの2行目の定義が,unt2のpdsysにはありません。
  7. unt2のpdsysの5行目の定義が,unt1のpdsysにはありません。

使用例

運用中のHiRDB/パラレルサーバ(ユニット1,ユニット2の構成)のシステム定義を変更します。変更するHiRDBシステム定義ファイルはユニット1のpdsvrcとします。

  1. ユニット1とユニット2の$PDDIR/conf下と$PDCONFPATH下にサブディレクトリ「chk」を作成します。
  2. 各ユニットで,$PDDIR/conf下のpdutsysを$PDDIR/conf/chk/にコピーします。
  3. 各ユニットで,$PDCONFPATH下のHiRDBシステム定義ファイルを$PDCONFPATH/chk/にコピーします。
  4. ユニット1の$PDCONFPATH/chk/pdsvrcの定義内容を変更します。
  5. 「pdconfchk -d chk」を実行します。
  6. 内容に問題がなければ,pdstopコマンドでHiRDBを正常終了又は計画停止します。ただし,計画停止の場合は,変更できない定義があるため注意してください。
  7. pdlogunldコマンドで,「アンロード待ち状態」のシステムログファイルをアンロードします。
  8. 4.で変更したHiRDBシステム定義ファイルを$PDCONFPATH下にコピーします。
  9. pdstartコマンドでHiRDBを正常開始します。

注※
「pdconfchk -d chk」実行時に,チェックするHiRDBシステム定義ファイルの場所は次のようになります。
[図データ]