5. システムの監視を怠るべからず
5.1. データベースの容量監視の必要性と容量拡張方法
5.1.1. 留意点
【概要】
Symfoware では表の DSO 定義で ORDER(1)、インデックスの DSO 定義で再配置指定
(REALIGNMENT)を指定することにより、データ格納時に自動再配置を行います。
しかし、データの追加、更新、および削除が頻発した際にSymfowareの自己調整の範囲内 ではデータ格納の効率を維持できず、データベースの容量不足になる可能性があります。
DSO 定義で ORDER(0)、縮退指定(DEGENERATE)を指定の場合、または再配置指定
(REALIGNMENT)も縮退指定(DEGENERATE)も未指定の場合、ORDER(1)、再配
置指定(REALIGNMENT)を指定の場合と比べて、さらに危険度が増します。
また、本番運用を開始してから当初の見積りよりも多いデータ量が処理されてデータベース の容量不足になる可能性もあります。
このようなことから、データベースの空き容量の監視は必要です。
データベースの容量監視はrdbspcinfコマンド、rdbinfコマンドまたはrdbudsiコマンドで 行います。
アラーム通知(メッセージ出力による通知)による容量監視も可能である。アラーム通知の設
定はrdbalmdsiコマンドで行います。
データベースの容量を拡張するには rdbalmdsi コマンドによる動的(自動)容量拡張と
rdbgcdsiコマンドによる静的容量拡張があります。
【詳細】
データベースの容量監視方法
データベースの容量監視をする目安は各システムのデータ更新頻度によって異なりま すが、1週間に1回、最低でも1ヶ月に1回程度は実施する必要があります。
容量監視には、rdbspcinf コマンド、rdbinf コマンド、rdbudsi コマンドまたは
rdbalmdsiコマンドを使用します。
データベーススペース使用状況を監視する場合
※DSIの自動容量拡張を設定している場合は、DSIおよびDSIの拡張先となって いるデータベーススペースに対してrdbspcinfコマンドを実行します。
DSIの使用状況を監視する場合
DSIの使用状況の監視には、rdbinfコマンドまたはrdbudsiコマンドを使用しま す。
rdbudsiコマンドはDSIの全ページにアクセスするため、業務運用中に使用する
場合は、排他制御(※)やディスク負荷の増加に対する注意(業務の負荷が低い 時間帯に実行する等)が必要です。そのため、以下のDSIを対象とした使用状況 rdbspcinf -p データベース名.データベーススペース名 -f
Symfoware Server べからず集 の監視は、rdbinfコマンドの使用を推奨します。
- DSO定義でORDER(0)を設定しているDSIの場合 - 主な利用方法がデータの追加である表のDSIの場合
※DSIの自動容量拡張を設定していない場合は、各DSIに対してrdbinfコマンド を実行します。
※DSIの自動容量拡張を設定していない場合は、各DSIに対してrdbudsiコマン ドを実行します。
なお、rdbinf コマンドとrdbudsiコマンドで表示される使用率には以下の違いが
あるので、誤認しないよう注意が必要です。
コマンド 使用率の意味
rdbinf 割付けページに対して、現在までに使用されたことがあるページの割合
rdbudsi 割付けページに対して、現在使用されているページの割合
DSIのアラーム通知を設定する場合
DSI の使用ページ容量をアラームポイントとして定義しておくことで、使用ペー ジがアラームポイントを含むページに達した場合、アラーム通知のメッセージ
(qdg02864i)が、RDB 構成パラメタファイル:RDBREPORT に指定したメッセ
ージログファイルに出力されます。ただし、rdbuptコマンドを除くRDBコマン ドの場合は、アラームポイントを超えた契機でメッセージが出力されます。
詳細は、「5.1.3. 備考」で示したマニュアルの 「データベースのアラーム通知」
を参照してください。
※アラーム通知を使用する場合の主な注意事項
アラームポイントは、該当のDSIのページ長の倍数で指定してください。
アラーム通知は、1つのDSIに対して一度だけ通知されます。その後に以下 の操作を行った場合には、アラームの通知が行われていない状態になります。
Symfoware/RDBの停止
rdbalmdsi -i データベース名.DSI名 -a アラームポイント rdbudsi -i データベース名.DSI名 -f -d インターバル値 rdbinf -i データベース名.DSI名
Symfoware Server べからず集
rdbgcdsiコマンドの実行
設定したアラームポイントはrdbprtコマンド(定義情報の出力)で確認できま す。
DSIの容量不足の原因の確認と対処
容量不足の原因として、純粋な容量不足と、フラグメンテーション(※1)による容量不 足があります。
このため、rdbudsi コマンドにより出力される情報を元に原因を確認し、対処方法を 決定してください。
詳細は、「5.1.3. 備考」で示したマニュアルの「DSIの容量監視」 を参照してくださ
い。
「使用中のページに対してデータが格納されている領域の割合」 が小さい場合 フラグメンテーションによる影響が大きいため、DSIの再編成を行います。
「使用中のページに対してデータが格納されている領域の割合」 が大きい場合 フラグメンテーションによる影響はなく、純粋にDSIの容量不足。DSI の容量 拡張を行います。
※1) フラグメンテーションは以下の場合に発生することがあります。
- データの更新や削除を繰り返し実施した場合
- DSI再編成後のデータ格納操作においてページスプリットが多発した場合 なお、インデックスのフラグメンテーションは、縮退指定や再配置指定を使用す れば、発生を軽減することができます。
このため、縮退指定、再配置指定の使用を推奨します。
- 縮退指定の場合:空き状態になったページを解放し、利用可能なページを確 保する
- 再配置指定の場合:縮退指定の動作に加えて、隣接する空き領域のページを 1つに結合し、利用可能なページを確保する
【DSIの再編成の方法】
rdbsloaderコマンドまたはrdbgcdsiコマンドを実行してDSIを再編成します。
詳細は、「5.1.3. 備考」 で示したマニュアルの 「再編成」 を参照してください。
※インデックスDSIのINDEX部は、rdbalmdsiコマンドでアラームポイントを設定す ることができないため、アラームメッセージは出力されません(自動容量拡張は対象)。 このため、更新が大量に発生するインデックスのDSIは、自動容量拡張を設定しておく ことを推奨します。
【DSIの容量拡張の方法】
DSIの容量拡張には静的容量拡張と動的容量拡張の2つの方法があります。
詳細は、「5.1.3. 備考」 で示したマニュアルの 「再編成」 を参照してください。
Symfoware Server べからず集
静的容量拡張
rdbgcdsiコマンドを使用して拡張を行います。
rdbgcdsiを使用してデータベースの再配置や拡張を行う前後では、“参照更新抑止”
の設定と解除を行う必要があります。
動的容量拡張
rdbalmdsiコマンドを使用して、DSIに対する拡張契機の通知と自動拡張を定義し
ます。
【DSIの容量拡張の注意事項】
以下の点に注意して、拡張量と拡張契機を調整する必要があります。
DSIの容量拡張時に拡張域を初期化するため、拡張量に応じて容量拡張に時間がか かります。
逆に拡張量を小さくして、DSI の容量拡張が頻繁に行われ、容量拡張回数が 1000 回を超えた場合も、容量拡張に時間がかかるようになります。
動的容量拡張は非同期で動作しますが、1回の容量拡張に時間がかかると、SQL文 やRDBコマンドの動作と容量拡張が同時に動作する場合があり、SQL文やRDB コマンドの性能に影響します。
DSIの動的容量拡張の開始後、拡張契機で指定した空きページ容量を使い切るまで に容量拡張が完了するように、拡張量と拡張契機を調整してください。
動的容量拡張の開始および完了は、RDB構成パラメタファイル:RDBREPORTに 指定したメッセージログファイルに出力されるメッセージ(qdg02868i および qdg02865i) により確認できます。
インデックスDSIのINDEX部は、下位のBASE部に空きが作成されないと、再 配置を行いません。このため、インデックスデータの更新が多発すると、容量不足 になる可能性があります。容量不足の発生確率を減らすには、INDEX 部のページ サイズを小さくすることが有効ですが、バッチ処理等で大量のページを更新する場 合には、性能が劣化することがあるので注意が必要です。
【補足】
DSIの容量拡張方法として以下に示す機能もあります。
詳細は、「5.1.3. 備考」 で示したマニュアルの 「表のDSI定義」、「格納構造定義
の変更」 を参照してください。
静的容量拡張
DSI定義文(CREATE DSI文)からアラームポイント・容量拡張定義を指定
できる。
動的容量拡張
Symfoware Server べからず集
自動容量拡張の自動設定
RDB構成パラメタ「RDBEXPDSI」により自動容量拡張の自動設定が行われます。
省略時は、自動容量拡張設定をSymfowareが自動設定します。
本設定によって、DSI定義時の拡張指定忘れ、またはDSI定義後にrdbalmdsiコ マンドの実行を忘れ、アラームポイント・容量拡張定義が未指定の状態で運用した ことで、DSIの容量不足エラーを引き起こすといった事例の発生を未然に防止する ことができます。
詳細は、「5.1.3. 備考」で示したマニュアルの「RDB構成パラメタファイルによる
定義」を参照してください。
5.1.2. 未対処時の影響 (1) 現象分類
機能の異常/処理結果異常 (2) 現象/原因
DSIの領域不足により、データの更新/登録ができなくなり、以下のメッセージを出 力して業務が停止してしまう場合があります。
[メッセージ]
qdg12824u およびJYP5039E : データベース“*”に定義されているDSI“*”
の容量が不足しました
qdg12825u およびJYP5001E : スキーマ“*”の表“*”内に定義されているDSI
“*”の容量が不足しました
5.1.3. 備考
Symfoware Server RDB運用ガイド 4.3 データベースのアラーム通知
4.9.4 インデックスの自動再配置
7.5.1 DSIの容量監視 7.9 再編成