ページの先頭行へ戻る
Symfoware Server V11.1.0 RDB運用ガイド
FUJITSU Software

7.9.2 データベースの容量拡張

データベースの初期の容量は、DSI定義時(CREATE DSI文)に指定するデータベース容量で決定します。その後の運用でデータベースの容量を拡張する必要性が発生した場合は、以下の方法で容量の拡張を行います。

また、一度rdbalmdsiコマンドまたはDSI定義文で設定したアラームポイントおよび自動容量拡張の定義を無効にするためには、DSIを再定義する必要があります。

容量拡張のための領域が確保できない場合は、すでに格納済みのデータを圧縮することで、容量拡張を行うことなく、データベースの容量を確保することができます。

表のデータ圧縮は、表のデータ構造がSEQUENTIALの場合に行えます。ただし、画像データのような圧縮済みのデータおよびDSIの容量が500メガバイト未満の場合、十分な圧縮効果は得られません。

参照

  • rdbalmdsiコマンドまたはDSI定義文で設定した容量拡張定義を無効にする方法は、“トラブルシューティング集”の“容量拡張を行う”を参照してください。

  • 表のデータ圧縮については、“RDB運用ガイド(データベース定義編)”の“表のデータ圧縮”を参照してください。

DSI変更文によるDSIの容量拡張

運用中にDSIの残りの領域が少なくなった場合に、業務の合間にDSI変更文により自動容量拡張を任意に実施させることができます。
自動容量拡張とは、運用中にDSIの残りの領域が、指定した容量に達した時点で、DSIの容量を自動的に拡張する機能です。

DSI変更文によるDSIの容量拡張の作業手順は以下のとおりです。

  1. ローデバイスの確保

    データベーススペースを作成するためのローデバイスを確保します。既存のデータベーススペースを利用する場合には、この操作は不要です。

  2. 追加データベーススペースの作成

    確保したローデバイス上に、データベーススペースをrdbddlexコマンドのCREATE DBSPACE文で作成します。既存のデータベーススペースを利用する場合には、この操作は不要です。

  3. DSIのメモリ常駐の解除

    DSIがメモリに常駐している場合、rdbresidentコマンドでメモリの常駐を解除します。DSIがメモリに常駐していない場合には、この操作は不要です。

  4. 容量拡張の実施

    DSI変更文でDSIの容量拡張を実施します。

  5. DSIのメモリ常駐

    3.でDSIのメモリ常駐を解除した場合、rdbresidentコマンドでDSIをメモリに常駐させます。3.でDSIのメモリ常駐を解除しなかった場合には、この操作は不要です。

参照

DSI変更文の指定方法の詳細については、“SQLリファレンス”を参照してください。

定義変更によるDSIの容量拡張

DSIの再定義やDSOにDSIを追加するなど、既存の定義を変更することによりDSIの容量を拡張します。詳細については、“第8章 データベースの再構築”を参照してください。

自動容量拡張によるDSIの容量拡張

rdbalmdsiコマンドまたはDSI定義文でDSIに自動容量拡張の指定をします。

自動容量拡張の作業手順は以下のとおりです。

  1. ローデバイスの確保

    データベーススペースを作成するためのローデバイスを確保します。既存のデータベーススペースを利用する場合には、この操作は不要です。

  2. 追加データベーススペースの作成

    確保したローデバイス上に、データベーススペースをrdbddlexコマンドのCREATE DBSPACE文で作成します。既存のデータベーススペースを利用する場合には、この操作は不要です。

  3. 拡張契機の指示

    rdbalmdsiコマンドまたはDSI定義文でDSIに自動容量拡張の指定をします。セットアップ時に自動容量拡張の設定を有効にした場合は、この操作は省略できます。

参照

  • rdbalmdsiコマンドの指定方法の詳細については、“コマンドリファレンス”を参照してください。

  • DSI定義文の指定方法の詳細については、“SQLリファレンス”を参照してください。

自動容量拡張の契機となる機能

以下の機能が自動容量拡張の契機となります。

自動容量拡張の拡張契機と拡張量

rdbalmdsiコマンドにより、在庫表に対応する在庫表DSIに、オーバフロー部の残量が40キロバイトに達した時点にデータベーススペースDBSP_4およびデータベーススペースDBSP_5から100キロバイト単位に容量を拡張する場合の指定例を以下に示します。

$ rdbalmdsi -i 在庫管理DB.在庫表DSI
                   (1)           (2)
            -c 40K  -e 100K  -p 在庫管理DB.DBSP_4:在庫管理DB.DBSP_5
               (3)     (4)                         (5)
(1) データベース名
(2) DSI名
(3) 拡張契機
(4) 拡張量
(5) 割付け予定のデータベーススペース名

なお、DSIの残り容量が枯渇した時点で自動容量拡張を行うには、拡張契機に0キロバイトを指定します。

また、以下のコマンドでは、処理対象のDSIの容量不足を検出した契機で自動容量拡張が行われます。rdbalmdsiコマンドで指定した拡張契機については無視されます。

以下に、容量が512キロバイトでページ長が32キロバイトのDSIに自動容量拡張の指定例を設定した場合の概要図を示します。

例の場合、14ページ目以降を使用した契機で自動容量拡張が行われます。

注意

  • 拡張量は、ページ長単位に繰り上げるため、ページ長の倍数で指定してください。

  • 拡張契機は、rdbalmdsiコマンドまたはDSI定義文で指定した値以下で、かつ対象のDSIのページ長の倍数となる値で処理されますので、ページ長の倍数で指定してください。

  • スケーラブルログ運用を行っている場合は、以下のことに注意してください。

    • 割付け予定のデータベーススペースは、DSIを割り付けているデータベーススペースと同一のロググループを使用するものでなければなりません。

    • 割付け予定のデータベーススペース名を複数指定する場合は、同一ロググループを使用するデータベーススペースでなければなりません。

    • 自動容量拡張は、容量拡張を実施した回数だけ、RDBディクショナリおよびRDBディレクトリファイルにエクステントごとの情報を持つため、情報保持にコストがかかります。また、エクステント数に比例して、アクセス時間もかかります。そのため、DSIは初期量、拡張契機および拡張量に適切な値を見積もって定義してください。自動容量拡張が頻繁に発生する場合には、定義変更によるDSIの容量拡張を検討してください。詳細については、“第8章 データベースの再構築”を参照してください。

  • アーカイブログ運用を行っている場合は、以下のことに注意してください。

    • 自動容量拡張は、容量拡張を実施時にシステムロググループおよびユーザロググループのアーカイブログファイルへログ情報を収集します。容量拡張を実施中にアーカイブログが満杯となると、機能により以下となります。

      • 更新を行うSQL文およびrdbuptコマンド

        システム用の動作環境ファイルのARC_FULLパラメタで記述した振る舞いとなります。

      • rdbsloaderコマンド、rdbsaloaderコマンド、rdbsuloaderコマンド、rdbfmtコマンドおよびrdbgcdsiコマンド

        空きのアーカイブログファイルが作成されるまで待ちます。ARC_FULLパラメタの詳細については、“セットアップガイド”を参照してください。

  • 格納データを暗号化している場合は、以下のことに注意してください。

    • 割付け予定のデータベーススペースは、DSIを割り付けているデータベーススペースと同じ暗号化指定でなければなりません。

    • 割付け予定のデータベーススペース名を複数指定する場合は、データベーススペースの暗号化指定が統一されていなければなりません。