6.1 データベース再編成の検討

ここでは,組み込みDBデータベースのメンテナンス時期を見積もる方法について説明します。

JP1/AJS3のデータベースに組み込みDBを使用して長時間運用する場合,レコードの削除でインデクスに無効領域が発生します。この無効領域は,次に示すどちらかの方法でメンテナンスする必要があります。

ajsembdbreclaimコマンドを使用すると,データベース内にある無効領域だけで構成されるページ(空きページ)を回収して再利用できるようにします。このコマンドは,サーバ稼働中でも実行できるため,定期的にコマンドを投入することで,データ領域が効率良く利用できるようになります。

通常の運用では,このajsembdbreclaimコマンドを使用するだけで,再編成の必要がありません。ただし,ページの利用効率が低い場合(ページ中に有効データが1件だけある場合など)は,回収可能な空きページが少なくなり,効率良く回収できない場合があります。この場合は,再編成を実施する必要があります。

<この節の構成>
(1) メンテナンス作業の流れ
(2) メンテナンスの時期を見積もる方法

(1) メンテナンス作業の流れ

メンテナンス作業の流れを次の図に示します。

図6-1 メンテナンス作業の流れ

[図データ]

(2) メンテナンスの時期を見積もる方法

組み込みDBは,定期的にajsembdbreclaimコマンドを実行して,無効領域を有効領域化するか,または再編成する必要があります。ajsembdbreclaimコマンドの利用および再編成時期を見積もるには,データベース領域を解析します。次に示す方法で実測した解析値を基に,時期を見積もってください。

再編成の時期を見積もる場合,週単位や月単位でピークとなる日や,週および月単位での増加分を考慮してください。

データベース領域を解析する方法を次に示します。

(a) データベース領域の解析

ajsembdbstatusコマンドを実行して,データベースの状態を確認します。

ajsembdbstatusコマンドを使って解析した結果,空きセグメントが少なく,空きページが多い場合はデータベースをメンテナンスしてください。

ajsembdbstatusコマンドについては,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド ajsembdbstatus」を参照してください。

(b) 領域不足のメッセージ

組み込みDBのデータの格納効率が悪くなると,組み込みDBはWindowsイベントログまたはsyslogにメッセージKFPH00211-I,またはKFPH00212-Iを出力します。メッセージが出力された場合,ajsembdbstatusコマンドでデータベースの状態を解析し,必要に応じてデータベースを再編成してください。メッセージの出力例を次に示します。

領域不足のメッセージ出力例

KFPH00211-I RDAREA usage xxx%, RDAREA="xxxxx" xxxxx
KFPH00212-I Table should be reorganized, RDAREA="xxxxx", AUTHID=xxxxx, TABLE=xxxxx

データベースをメンテナンスまたは再編成した直後にまだメッセージが出力される場合は,RDエリアを拡張する必要があります。RDエリアの拡張については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド ajsembdbaddarea」を参照してください。