ページの先頭行へ戻る
Interstage Application Server ディレクトリサービス運用ガイド

10.7.1 DSIの容量監視(断片化状態の確認)

  Symfoware/RDBでは、割り当てられたデータベーススペース内で格納データの配置を自動調整します。しかし、データの追加、更新、および削除を繰り返すと、自動調整の範囲を超えて、データベース内に空き領域が生じる場合があります。これは、性能劣化や、領域不足の原因になります。そこで、DSIに割当てられた領域の使用率を表示することにより、データベースの再配置やデータベースの容量拡張を行う契機を予測し、適切な処置をする必要があります。

  以下の手順で、DSIの使用率を確認します。

  1. Interstageディレクトリサービスが使用するDSIの一覧の取得

      以下に、Interstageディレクトリサービスが使用するDSIの一覧の取得方法を示します。Symfoware Serverのコマンドrdbprtを使います。

    # rdbprt -d DSDB(*1) -m DEF -p -
    DSI(DS_ENTRY_DSI,DS_SCOPE_DSI,DS_FILTER_DSI)(*2)
    Ctrl+Z(*3)
      :
    No. 1         DSI name ...... DS_ENTRY_DSI
    
      Usage type    ...... BASE
      Database name ...... DSDB
      Schema name   ...... DSADMIN
      Table name    ...... DS_ENTRY
      DSO name      ...... DS_ENTRY_DSO
      Creator       ...... DSADMIN
      Created date  ...... Mon Nov 10 14:01:40 2008
    
      Related index DSI information
        No.         Index DSI name
        1           IDXDSI_DS_ENTRY_PK
        2           IDXDSI_DS_ENTRY_01
    
      :
      :

    *1) irepgendbコマンドで指定したデータベース名

    *2) テーブルのDSI名を指定します。Interstageディレクトリサービスが使用するテーブルのDSI名は、以下の3つです。

    • DS_ENTRY_DSI

    • DS_SCOPE_DSI

    • DS_FILTER_DSI

    *3) Ctrl+Zは、Ctrlキーを押下しながら「Z」キーを押下します。EOF文字を意味します。この例では、Windows(R)の場合を示しています。Solaris、およびLinuxの場合には、EOF文字は、通常、Ctrl+Dに割り当てられています。

      テーブルのDSIごとに、DSI情報が出力されます。
      「Related index DSI information」の下に表示される「Index DSI name」がテーブルのDSIに関連するインデックスのDSI名です。この例では、テーブルのDSI「DS_ENTRY_DSI」に関連するインデックスのDSI名は、「IDXDSI_DS_ENTRY_PK」と「IDXDSI_DS_ENTRY_01」の2つです。

      同様に、他の2つのテーブルのDSI「DS_SCOPE_DSI」、「DS_FILTER_DSI」に関連するインデックスのDSI名を調べます。

      rdbprtコマンドの詳細は、Symfoware Serverのマニュアル“コマンドリファレンス”を参照してください。

  2. DSI使用率の確認

      Interstageディレクトリサービスが使用するDSIそれぞれに対して、使用率を確認します。DSIに割当てられた領域の使用率は、rdbudsiコマンドを使って表示します。
      テーブルのDSIとインデックスのDSIの使用率は、それぞれ、以下のように表示されます。

    テーブルのDSIの使用率の確認例

    $ rdbudsi -i DSDB.DS_ENTRY_DSI -f
    
    DSI(DSDB.DS_ENTRY_DSI) , TYPE(SEQUENTIAL), DATA(968, 19% , 20% ,250 , 80%)
                                                    (1)  (2)   (3)  (4)   (5)

    インデックスのDSIの使用率の確認例

    $ rdbudsi -i DSDB.IDXDSI_DS_ENTRY_PK -f
    
    DSI(DSDB.IDXDSI_DS_ENTRY_PK) , TYPE(BTREE), 
        BASE( 0 , 0% , 0% ,128 , 0%),INDEX(-- , 0% , 0% , 64 , 0%) 
             (1)  (2)  (3) (4)  (5)             (2)   (3)  (4) (5)

    (1) 割付け対象に格納されている行数
    (2) 割付けページ数に対してデータが格納されているページの割合(単位は%)
    (3) 割付けページ数に対して使用中のページの割合(単位は%)
    (4) 割付けページ数
    (5) 使用中ページに対してデータが格納されている領域の割合(単位は%)

      rdbudsiコマンドの詳細は、Symfoware Serverのマニュアル“コマンドリファレンス”を参照してください。

■データベースの再配置と容量拡張の目安

  rdbudsiコマンドで表示される、使用中ページの割合(3)と使用中ページに対してデータが格納されている領域の割合(5)から、データベースの再配置を行うかデータベースの容量拡張を行うかの判断をします。

  ここでは、判断を行う時の目安を示します。なお、使用中のページとは、以前に一度でもデータが格納されたことがあるページを表します。ページ内の行がすべて削除されている場合でも、使用中ページとして表示します。

  データベースの再配置およびデータベースの容量拡張の操作については、“再編成”を参照してください。

  使用中ページの割合(3)が大きい場合(80%を超える)は、再配置または容量拡張を行います。

  • 使用中ページに対してデータが格納されている領域の割合(5)が小さい場合(80%以下)は、再配置を行います。

  • 使用中ページに対してデータが格納されている領域の割合(5)が大きい場合(80%を超える)は、容量拡張を行います。

DSIの使用率を確認するサンプル

  Interstage ディレクトリサービスでは、DSIの使用率(断片化状態)を確認するサンプルを、バッチファイル(Windows (R))およびシェルスクリプト(SolarisおよびLinux)で提供します。使用者は、それぞれの環境に適した手順を、サンプルのバッチファイル、またはシェルスクリプトに記述することで、簡単にデータベースの断片化の状態を確認することができます。

  このサンプルは、irepgendbコマンドを使用して作成したリポジトリデータ格納用テーブル用のものを提供します。

サンプル

  Symfoware/RDBの断片化状態を確認するサンプルは、以下の位置にあります。

  • Symfoware ServerをWindows(R)で運用する場合

    C:\Interstage\IREP\sample\RDB\SYM\GARBAGE\windows\irepgcstat.bat

      

  • Symfoware ServerをSolaris、またはLinuxで運用する場合

    C:\Interstage\IREP\sample\RDB\SYM\GARBAGE\unix\irepgcstat.sh

  

  • Symfoware ServerをWindows(R)で運用する場合

    /opt/FJSVirep/sample/RDB/SYM/GARBAGE/windows/irepgcstat.bat

      

  • Symfoware ServerをSolaris、またはLinuxで運用する場合

    /opt/FJSVirep/sample/RDB/SYM/GARBAGE/unix/irepgcstat.sh

  

  断片化状態を確認するための、バッチファイル(Windows(R))、またはシェルスクリプト(SolarisおよびLinux)の定義方法を説明します。

定義項目一覧

  断片化状態を確認するには、バッチファイル、またはシェルスクリプトのサンプル中の、以下に示す定義項目を変更します。すべての定義項目に、必ず値を指定してください。
  各定義項目には、“3.1.4 Symfoware/RDBセットアップ”で、Symfoware/RDBのセットアップ時に指定したRDBシステム名、データベース名を指定します。

定義項目名

定義値の説明

RDBNAME

RDBシステム名を指定してください。
RDBシステム名に使える文字は、半角英数字です。

DBNAME

データベース名を設定してください。
データベース名に使える文字は、半角英数字です。

  サンプルを使用する場合は、上記以外の定義項目を変更する必要はありません。

記述形式

  バッチファイル、およびシェルスクリプトのサンプル中に指定する、“定義項目一覧”の定義項目は、以下の形式で記述します。

set 定義項目名 = 定義値

  • 1行に1つの定義項目を記述します。

  • 「=」は、半角で記述します。

  • 定義項目名は、省略することはできません。


  Windows(R)用のバッチファイルで、RDBシステム名に「DSDBSYS」、データベース名に「DSDB」を、それぞれ指定するときの例です。SolarisおよびLinux用のシェルスクリプトにも同様に指定してください。

  rem------------------------------------
  set RDBNAME=DSDBSYS
  set DBNAME=DSDB
  rem------------------------------------
■実行方法
  1. Symfoware Serverを運用しているマシンに、ログイン

    システム管理者アカウント(Windows(R)の場合は「Administrator」、SolarisおよびLinuxの場合は「root」)か、または“3.1.4.5 リポジトリ用データベース接続ユーザの登録”で登録したOSアカウントでログインします。

  2. サンプルの修正

    バッチファイル(Windows(R))、またはシェルスクリプト(SolarisおよびLinux)のサンプルを、作業用ディレクトリにコピーします。
    記述形式”および、“定義項目一覧”を参照し、バッチファイル(Windows (R))、またはシェルスクリプト(SolarisおよびLinux)のサンプルを修正します。

  3. セキュリティ対策

    バッチファイルまたはシェルスクリプトは、セキュリティホールとなる可能性があります。システム管理者アカウント(Windows(R)の場合は「Administrator」、SolarisおよびLinuxの場合は「root」)、または“3.1.4.5 リポジトリ用データベース接続ユーザの登録”で登録したOSアカウントだけが実行できるように、バッチファイルまたはシェルスクリプトの実行権を変更することをお勧めします。

  4. 環境変数LANGの設定

    環境変数LANGに、Symfoware/RDBのロケール(OSのデフォルトロケール)を設定します。

  5. 実行結果出力先ファイルの削除

    バッチファイルまたはシェルスクリプトの実行結果は、以下に出力されます。

    バッチファイルまたはシェルスクリプトを実行したディレクトリ/log/irepgcstat.log


    バッチファイルまたはシェルスクリプトの実行結果出力先ファイルには、手順1でログインしたユーザアカウントの書き込み権が必要です。
    以前に、他のユーザアカウントで実行したことがあると、実行結果出力先ファイルのアクセス権に、手順1でログインしたユーザアカウントの書き込み権がなくなっていますので、実行結果出力先ファイルを削除してください。このファイルが必要なら、システム管理者権限でファイル名を変更するなどして、退避してください。

  6. バッチファイルまたはシェルスクリプトの実行

    修正したバッチファイルまたはシェルスクリプトを実行します。
    以下に例を示します。


    C:\work\irepgcstat.bat

    /work/irepgcstat.sh

      

  7. 実行結果が表示されます。

      ==================================================
      DSI Defragmentation
            Table : 85%
            Index : 75%
      ==================================================
    

      

    表示項目名

    表示項目の説明

    Table

    テーブルの平均使用率(使用中のDSIページに対してデータが格納されている割合)です。80%以下の場合は、断片化の解消をお勧めします。

    Index

    インデックスの平均使用率(使用中のDSIページに対してデータが格納されている割合)です。80%以下の場合は、断片化の解消をお勧めします。

      

  バッチファイルまたはシェルスクリプトの実行結果が、手順5で示したファイルに出力されます。ファイルの文字コード系は、Symfoware Serverをインストールしたときの文字コード系です。