Oracle 表領域を拡張してみよう

 2020.09.07  株式会社システムインテグレータ

Oracle 表領域を拡張してみよう

以前の記事で表領域のサイズ確認を行い、空きを確保する方法を紹介しました。
しかしながら、実運用においては表領域の空きを確保することができず拡張を検討することもあると思います。
そこで、今回はSI Object Browser(以下OB)で表領域を拡張する方法を紹介します。

表領域を拡張するには、大きく分けて以下の2点の方法があります。

・データファイルのサイズ拡張により表領域を拡張する
・データファイルを追加し表領域を拡張する

それぞれ見ていきましょう。

データファイルのサイズ拡張により表領域を拡張する

まずは管理メニュー > 表領域情報から対象の表領域画面を開いて表領域に紐づけられたデータファイルごとに詳細を確認しましょう。

以下の例は、サイズ5MB、自動拡張OFFに設定したデータファイルが1つあり、使用済みサイズも5MBで表領域TBS01にはこれ以上データを格納できなくなった状態を表しています。

Oracle 表領域を拡張してみよう 1
表領域

自動拡張OFFを継続したままデータファイルのサイズを拡張する場合はサイズ列を変更します。
サイズ列を拡張したいサイズ(MB単位)に変更するだけで、データファイルのサイズが拡張されます。

Oracle 表領域を拡張してみよう 2
データファイルのサイズ拡張

以上の操作でデータファイルのサイズが拡張されます。

一方、ディスクの空き容量に十分な余裕があるので自動的に拡張するように設定したい、という場合は以下の設定を行います。
・自動拡張をON
・増分列にデータファイルが一杯になったときの自動拡張されるサイズ(MB単位)
・最大列にデータファイルの上限サイズ(MB単位、空欄や0の場合はUNLIMITED指定)

Oracle 表領域を拡張してみよう 3
自動拡張設定

上記の例では、データファイルが一杯になるごとに1MBずつデータファイルが拡張され、無制限にデータファイルが拡張される設定となります

データファイルを追加し表領域を拡張する

前項の自動拡張設定で「無制限にデータファイルが拡張される」と書きましたが、これはディスクの空きが許す限り際限なく拡張されるということでしょうか?

答えはNOです。
データファイル1つ当たりの上限サイズは初期化パラメータ「DB_BLOCK_SIZE」に依存したサイズに制限され、自動拡張ONだったとしてもそれ以上の拡張は行われません。
※DB_BLOCK_SIZEはデータベース作成時に指定し、以降変更することはできません。
 既定では8192、この時のデータファイル1つ当たりの上限サイズは32GB-1となります。
 (SMALLFILE表領域の場合)

したがって、データファイルの上限に達してしまった場合はデータファイルの拡張ではなく追加を行って表領域の最大サイズを拡張することになります。

データファイルを追加するには、新規行に以下の設定を行います。

・名前列にデータファイルのパス(絶対パス)
・サイズ列にデータファイルの初期サイズ(MB単位)
・自動拡張をON/OFFいずれかに設定
・自動拡張ONの場合、増分列にデータファイルが一杯になったときの自動拡張されるサイズ(MB単位)
・自動拡張ONの場合、最大列にデータファイルの上限サイズ(MB単位、空欄や0の場合はUNLIMITED指定)

Oracle 表領域を拡張してみよう 4
データファイル追加

上記の例は既存のデータファイルと同じく、サイズ5MB、自動拡張OFFに設定したデータファイルを追加しました。したがって表領域のサイズが合計10MBとなります。

Oracle 表領域を拡張してみよう まとめ

いかがでしたか?今回はOBを使って表領域を拡張する方法をご紹介しました。
ビッグデータという言葉を耳にするようになって久しいこともあり、データの管理は非常に重要で欠かすことのできないスキルです。

OBを使うことで煩雑なSQLを記述することなく、視覚的に表領域の拡張を行うことができます。
様々な状況、要件に効率よく応えられるようご活用ください。


RELATED POST関連記事


RECENT POST「【OBトコ】DBの勉強」の最新記事


【OBトコ】DBの勉強

データベースのスキーマを理解する

【OBトコ】DBの勉強

データベース別インスタンスの関係性

【OBトコ】DBの勉強

ビューとマテリアライズド・ビューの違いを理解する

【OBトコ】DBの勉強

Oracle スケーラブルシーケンスの使い方を確認しよう

Oracle 表領域を拡張してみよう
新規CTA