スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

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

9.3.1 グローバルバッファの動的変更とは

HiRDBの稼働中にpdbufmodコマンドでグローバルバッファを追加,変更,又は削除できます。これをグローバルバッファの動的変更といいます。例えば,次に示す場合にグローバルバッファを動的変更してください。

なお,グローバルバッファを動的変更するにはHiRDB Advanced High Availabilityが必要になります。

<この項の構成>
(1) 動的変更したグローバルバッファの有効期限
(2) 準備作業
(3) 注意事項

(1) 動的変更したグローバルバッファの有効期限

動的変更したグローバルバッファはHiRDBを正常終了又は計画停止すると無効になります。このため,HiRDBを終了したときに,動的変更したグローバルバッファをpdbufferオペランドで定義してください。なお,システム構成変更コマンド(pdchgconfコマンド)を使用すると,HiRDBの稼働中にpdbufferオペランドの指定値を変更できます。システム構成変更コマンドでHiRDBシステム定義を変更する方法については,「9.2 HiRDBの稼働中にHiRDBシステム定義を変更する方法(システム構成変更コマンド)」を参照してください。

また,HiRDBを正常終了又は計画停止する前に,pdbufls -k defコマンドの実行結果(グローバルバッファの定義情報)を保存してください。それを参考にしてpdbufferオペランドを修正してください。

(2) 準備作業

グローバルバッファを動的変更するには次に示す準備が必要です。

(a) HiRDBシステム定義の指定
  1. pd_dbbuff_modifyオペランドにYを指定してください。
  2. pd_dbbuff_attributeオペランドにfixedを指定した場合,この機能で追加又は変更したグローバルバッファが使用する共用メモリも実メモリ上に固定されます。そのため,実メモリサイズを十分考慮してグローバルバッファを追加又は変更してください。実メモリサイズに余裕がない場合はpd_dbbuff_attributeオペランドを省略するか,又はfreeを指定してください。
  3. SHMMAXオペランドの指定値を見積もり直してください。
(b) メモリに関する準備作業
  1. 次に示す共用メモリが増加するため,共用メモリの必要量を見積もり直してください。共用メモリの見積もりについては,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
    ・グローバルバッファが使用する共用メモリ
    ・シングルサーバが使用する共用メモリ
    ・ディクショナリサーバが使用する共用メモリ
    ・バックエンドサーバが使用する共用メモリ
  2. ステータスファイルの必要量が増加するため,ステータスファイルの容量を見積もり直してください。ステータスファイルの容量見積もりについては,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
  3. オペレーティングシステムパラメタshmmax,shmmni,及びshmseg(Solarisの場合はshminfo_shmmax,shminfo_shmmin,及びshminfo_shmseg,Linuxの場合はSHMMAX,SHMMIN,及びSHMSEG)を見積もり直してください。オペレーティングシステムパラメタの見積もりについては,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。

(3) 注意事項

(a) ほかの機能との関連

高速系切り替え機能又はスタンバイレス型系切り替え機能を使用する場合は,グローバルバッファの動的変更機能を使用できません。これらの機能を使用する場合は,システム構成変更コマンド(pdchgconfコマンド)でpdbufferオペランドの指定値を変更してグローバルバッファを割り当ててください。pdchgconfコマンドを使用すると,HiRDBの稼働中にHiRDBシステム定義を変更できます。ただし,このコマンドを使用する場合はHiRDB Advanced High Availabilityが必要になります。HiRDBの稼働中にHiRDBシステム定義を変更する方法については,「9.2 HiRDBの稼働中にHiRDBシステム定義を変更する方法(システム構成変更コマンド)」を参照してください。

(b) 排他制御

グローバルバッファの動的変更時(pdbufmodコマンドの実行時)は,関連するRDエリアに対して排他モード(EX)で排他が掛かります。このため,関連するRDエリアにアクセスするトランザクションは待ち状態になります。

(c) グローバルバッファ数の上限

グローバルバッファ数の上限は,pd_max_add_dbbuff_noオペランド,及びpd_max_add_dbbuff_shm_noオペランドで設定します。

pdbufls -k defコマンドの実行結果で表示されるグローバルバッファを数えることで,グローバルバッファ数を確認できます。HiRDB/パラレルサーバの場合はサーバ名(ヘッダ名:SVID)が一致するグローバルバッファを数えてください。

(d) グローバルバッファ用の共用メモリセグメント数の上限

グローバルバッファを動的変更(追加及びメモリ所要量が増加する変更)すると,新規の共用メモリセグメントを確保し,動的変更したグローバルバッファをその共用メモリセグメントに割り当てます。この共用メモリセグメントは,pd_max_add_dbbuff_noオペランド,及びpd_max_add_dbbuff_shm_noオペランドで設定します。なお,HiRDB/パラレルサーバの場合は1サーバ当たりで設定します。pdls -d memコマンドの実行結果で表示される共用メモリセグメントを数えることで,共用メモリセグメント数を確認できます。HiRDB/パラレルサーバの場合はサーバ名(ヘッダ名:SHM-OWNER)が一致するグローバルバッファを数えてください。

共用メモリセグメント数が上限を超えた場合は,動的変更したグローバルバッファの定義情報をpdbufferオペランドに反映してください。その後,HiRDBを正常開始すると共用メモリセグメント数を減らせます。

なお,動的変更したグローバルバッファが使用する共用メモリサイズがSHMMAXオペランドの値より大きい場合,グローバルバッファが使用する共用メモリが複数の共用メモリセグメントに確保されます。確保される共用メモリセグメント数は次に示す計算式から求められます。

↑動的変更したグローバルバッファが使用する共用メモリサイズ÷SHMMAXオペランドの値↑

グローバルバッファが使用する共用メモリについては,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。