データベースの初期の容量は、DSI定義時(CREATE DSI文)に指定するデータベース容量で決定します。その後の運用でデータベースの容量を拡張する必要性が発生した場合は、以下の方法で容量の拡張を行います。
DSI変更文によるDSIの容量拡張
定義変更によるDSIの容量拡張
自動容量拡張によるDSIの容量拡張
また、一度rdbalmdsiコマンドまたはDSI定義文で設定したアラームポイントおよび自動容量拡張の定義を無効にするためには、DSIを再定義する必要があります。
容量拡張のための領域が確保できない場合は、すでに格納済みのデータを圧縮することで、容量拡張を行うことなく、データベースの容量を確保することができます。
表のデータ圧縮は、表のデータ構造がSEQUENTIALの場合に行えます。ただし、画像データのような圧縮済みのデータおよびDSIの容量が500メガバイト未満の場合、十分な圧縮効果は得られません。
参照
rdbalmdsiコマンドまたはDSI定義文で設定した容量拡張定義を無効にする方法は、“トラブルシューティング集”の“容量拡張を行う”を参照してください。
表のデータ圧縮については、“RDB運用ガイド(データベース定義編)”の“表のデータ圧縮”を参照してください。
運用中にDSIの残りの領域が少なくなった場合に、業務の合間にDSI変更文により自動容量拡張を任意に実施させることができます。
自動容量拡張とは、運用中にDSIの残りの領域が、指定した容量に達した時点で、DSIの容量を自動的に拡張する機能です。
DSI変更文によるDSIの容量拡張の作業手順は以下のとおりです。
ローデバイスの確保
データベーススペースを作成するためのローデバイスを確保します。既存のデータベーススペースを利用する場合には、この操作は不要です。
追加データベーススペースの作成
確保したローデバイス上に、データベーススペースをrdbddlexコマンドのCREATE DBSPACE文で作成します。既存のデータベーススペースを利用する場合には、この操作は不要です。
DSIのメモリ常駐の解除
DSIがメモリに常駐している場合、rdbresidentコマンドでメモリの常駐を解除します。DSIがメモリに常駐していない場合には、この操作は不要です。
容量拡張の実施
DSI変更文でDSIの容量拡張を実施します。
DSIのメモリ常駐
3.でDSIのメモリ常駐を解除した場合、rdbresidentコマンドでDSIをメモリに常駐させます。3.でDSIのメモリ常駐を解除しなかった場合には、この操作は不要です。
参照
DSI変更文の指定方法の詳細については、“SQLリファレンス”を参照してください。
DSIの再定義やDSOにDSIを追加するなど、既存の定義を変更することによりDSIの容量を拡張します。詳細については、“第8章 データベースの再構築”を参照してください。
rdbalmdsiコマンドまたはDSI定義文でDSIに自動容量拡張の指定をします。
自動容量拡張の作業手順は以下のとおりです。
ローデバイスの確保
データベーススペースを作成するためのローデバイスを確保します。既存のデータベーススペースを利用する場合には、この操作は不要です。
追加データベーススペースの作成
確保したローデバイス上に、データベーススペースをrdbddlexコマンドのCREATE DBSPACE文で作成します。既存のデータベーススペースを利用する場合には、この操作は不要です。
拡張契機の指示
rdbalmdsiコマンドまたはDSI定義文でDSIに自動容量拡張の指定をします。セットアップ時に自動容量拡張の設定を有効にした場合は、この操作は省略できます。
参照
rdbalmdsiコマンドの指定方法の詳細については、“コマンドリファレンス”を参照してください。
DSI定義文の指定方法の詳細については、“SQLリファレンス”を参照してください。
以下の機能が自動容量拡張の契機となります。
更新を行うSQL文
rdbuptコマンド
rdbsloaderコマンド
rdbsaloaderコマンド
rdbsuloaderコマンド
rdbgcdsiコマンド
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コマンドで指定した拡張契機については無視されます。
rdbsloaderコマンド
rdbsaloaderコマンド
rdbsuloaderコマンド
rdbgcdsiコマンド(Eオプションおよびcオプション指定時)
以下に、容量が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を割り付けているデータベーススペースと同じ暗号化指定でなければなりません。
割付け予定のデータベーススペース名を複数指定する場合は、データベーススペースの暗号化指定が統一されていなければなりません。