スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(UNIX(R)用)
HiRDB/パラレルサーバで64ユニットを超える大規模なシステムを構築する場合は,次の点を考慮してください。
- <この節の構成>
- (1) 通信資源
- (2) 注意事項
HiRDBで使用するポートを固定することによって,通信負荷を減らせます。HiRDBで使用するポートを固定する場合には,システム定義で次のように指定してください。
- pd_name_fixed_port_lookupオペランドにYを指定して,自ユニットの共用メモリ情報で他ユニットとの通信をするようにしてください。また,併せて次のオペランドを指定してください。
- pd_mlg_portオペランド,又はpdunitオペランドの-mオプション
- pd_alv_portオペランド,又はpdunitオペランドの-aオプション
- pd_trn_portオペランド,又はpdunitオペランドの-tオプション
- pd_scd_portオペランド,又はpdunitオペランドの-sオプション
- pd_name_portオペランド,又はpdunitオペランドの-pオプション
また,通信処理の性能向上のため,次の指定をしてください。
- pd_ipc_conn_nblock_timeオペランドに2を指定してください。HiRDBのサーバ間通信の場合に,稼働していないサーバがあったとき,このオペランドの指定値が大き過ぎるとタイムアウトまでの待ち時間が延びてしまいます。
- pd_bes_connection_holdオペランドにYを指定してください。
- UAPの接続時間(SQLのCONNECTからDISCONNECTまでの間)が短いシステムの場合は,pd_bes_conn_hold_trn_intervalオペランドに0を指定してください。
- クライアント側では,高速接続機能を使用してください。高速接続機能については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
(a) コマンド実行時の注意事項
HiRDBのコマンドを実行すると,内部的にリモートシェルを実行します。ユニットが増えた場合,リモートシェルが使用可能なポート数を超えてコマンドがエラーになることがあります。その場合の注意事項を次に示します。
- 次のコマンドは,ユニットを指定して実行してください。ただし,ユニット単位に実行した場合でも,リモートに要求するときには一時的にポートが使用できなくなることがあります。その場合はしばらく時間を置いてから再度コマンドを実行してください。
- pdaudbegin,pdaudend,pdaudrm,pdaudswap
- pdcancel
- pdcat
- pdrisechk
- pdstscls,pdstsinit,pdstsopen,pdstsrm,pdstsswap
- pdstbegin,pdstend
- pdls(ユニット名,又はサーバ名)
- 次のコマンドは,サーバを指定して実行してください。ただし,サーバ単位に実行した場合でも,リモートに要求するときには一時的にポートが使用できなくなることがあります。その場合はしばらく時間を置いてから再度コマンドを実行してください。
- pdchprc
- pdclttrc
- pdjarsync
- pdlogadpf,pdlogchg,pdlogcls,pdloginit,pdlogls,pdlogopen,pdlogrm,pdlogswap,pdlogsync,pdlogunld
- pdobils
- pdpfresh
- 次のコマンドはリモートシェルが使用可能なポート数を超えた場合には実行できません。
- pdconfchk
- pdgen
- pdls -d rpc
- pdchgconfはリモートシェルが使用可能なポート数を超えた場合には実行できません。実行できない場合は,HiRDBシステムを停止して構成変更をしてください。
- pddbstを実行する場合は,解析をRDエリア単位で並列実行してください。
- pdloadを実行する場合は,RDエリア単位のデータロードが並列実行できるように,入力ファイルを分割格納条件ごとに作成してください。また,作成した複数の入力ファイルは1か所(同一サーバ上)に配置するのではなく,表格納RDエリアが存在するバックエンドサーバに配置してから実行してください。
- pdprgcopy,及びpdprgrenewはリモートシェルが使用可能なポート数を超えた場合には実行できません。実行できない場合は,HiRDBがインストールされているマシンに,それぞれ修正版をインストールして入れ替えを行ってください。
- pdstartはリモートシェルが使用可能なポート数を超えた場合には実行できません。各マシンでpdstartに-qを指定してHiRDBシステムを実行してください。
(b) そのほかの注意事項
- トランザクションが複数のバックエンドサーバにわたるデータをアクセスする場合,サーバ間のデータ通信経路を極力減らすようにしてください。次のどれかに該当する場合,複数のバックエンドサーバにわたるデータをアクセスします。
- 複数のバックエンドサーバに横分割した表を指定したSQLを発行する
- FROM句に二つ以上の表を指定したSQLを発行する
- 副問合せを指定したSQLを発行する
- 集合演算を指定したSQLを発行する
- 共用表のデータを更新するSQLを発行する
- 同一トランザクション内に複数のSQLを発行する場合,それぞれのSQLのFROM句に異なるバックエンドサーバに定義された表を指定する
上記のどれかに該当する場合は,次の対策をすることでサーバ間のデータ通信経路を削減できます。
- 横分割表の分割数を少なくする
- SQLの探索条件に分割キーに対する条件を指定する
- 表の結合時は,対象となる表の分割を合わせ,結合キーを分割キーとする
- トランザクションがアクセスする複数の表のデータを同じバックエンドサーバに格納する
- フロータブルサーバを極力使用しないでください。次のどれかに該当する場合,フロータブルサーバを使用します。
- FROM句に二つ以上の表を指定したSQLを発行する(結合方式にネストループジョインを適用する場合を除く)
- 副問合せを指定したSQLを発行する
- 集合演算を指定したSQLを発行する
- ORDER BY句を指定したSQLを発行する(ORDER BYのためのソート処理をしなくても,インデクスを検索することでORDER BYに含まれる列のソート順を保証できる場合を除く)
- GROUP BY句を指定したSQLを発行する
- DISTINCTを指定したSQLを発行する
- ビュー表,WITH句,又はFROM句に導出表を指定したSQLを発行する(ビュー表,WITH句を指定したSQLで内部導出表を作成しない場合を除く)
内部導出表の条件については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
- FOR READ ONLY句を指定したSQLを発行する
上記に該当する場合は,次の対策をすることで使用するフロータブルサーバ数を削減できることがあります。
- SQL最適化オプションに"FLTS_ONLY_DATA_BES"を指定する
- SQL最適化オプションに"SORT_DATA_BES"を指定する
SQL最適化オプションについては,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- 64ユニットを超える構成の場合には,MIBパフォーマンス情報監視機能は使用できません。
- KFPS05120-Wメッセージが出力された場合に,$PDDIR/spool/cnctusrinf下のファイルが出力されないことがあります。その場合は,pdls -d act,pdls -d prc,pdls -d trnをそれぞれのユニットに実行してください。
- ファイルのオープン数について考慮してください。詳細は,「21. OSのオペレーティングシステムパラメタの見積もり」を参照してください。
- 通信時に使用するTCP/IPのListenキューが不足する場合があります。Listenキューの指定については,「21.6 Listenキュー指定値」を参照してください。
- 複数のフロントエンドサーバを経由して共用表の更新をしないでください。共用表の更新をする場合には,クライアントが接続するフロントエンドサーバができるだけ同じになるようにしてください。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.