ORACLE/TABLESPACE編

オラクルちょこっとリファレンス

HOME > TABLESPACE編

TABLESPACE(表領域)

表領域とはオブジェクト(表・ビュー・索引など)を格納するひとまとまりの領域のことです。表領域は物理的なファイルと対応しており、「1表領域=1つ以上のデータファイル」となってます。 しかし、1データファイルが複数の表領域を格納することはありません。

表領域の作成

表領域の作成には、CREATE TABLESPACE句を使用します。

CREATE TABLESPACE構文
CREATE TABLESPACE <表領域名>
  [DATAFILE データファイル名 [SIZE ファイルサイズ]]
    [AUTOEXTEND {OFF | ON NEXT サイズ [MAXSIZE {UNLIMITED | サイズ}]}]
  [MINIMUM EXTENT エクステントサイズ]
  [BLOCKSIZE ブロックサイズ]
  [LOGGING | NOLOGGING]
  [ONLINE | OFFLINE]
  [PERMANENT | TEMPORARY]
  [SEGMENT SPACE MANAGEMENT [MANUAL | AUTO]]
;
パラメータ 説明
DATAFILE 表領域を構成するデータファイルを指定する。SIZEでデータファイルのサイズも指定できる。
 AUTOEXTEND 表領域物理ファイルのサイズ拡張を指定する
OFF:自動拡張しない
ON:自動拡張する(NEXTで拡張時の増分サイズを指定、MAXSIZEで拡張上限サイズを指定する)
MINIMUM EXTENT 最小エクステントサイズを指定
BLOCKSIZE 表領域のブロックサイズを指定
LOGGING | NOLOGGING LOGGING:表領域に対する変更をREDOログに出力する
NOLOGGING:表領域に対する変更をREDOログに出力しない
ONLINE | OFFLINE ONLINE:表領域を使用可にする
OFFLINE:表領域を使用不可にする
PERMANENT | TEMPORARY PERMANENT:普通の表領域(デフォルト)
TEMPORARY:一時表領域
SEGMENT SPACE MANAGEMENT セグメントの管理方法を指定する

※→オラクルの仕組編の一番下に、ブロック/エクステント/セグメントの簡単な説明があります。

表領域の作成例文
--(例)表領域(USER01)をファイル名「USER01.dbf」、100MBのサイズで作成する CREATE TABLESPACE USER01 DATAFILE 'D:\ORACLE\DATA\USER01.dbf' SIZE 100M SEGMENT SPACE MANAGEMENT AUTO ;

CREATE TABLESPACEの実行には「CREATE TABLESPACE」システム権限が必要です。

表領域の書き込み可/不可の変更

表領域の書き込み可/不可の変更には ALTER TABLESPACE句を使用します。

ALTER TABLESPACE構文 (表領域の書き込み可/不可)
ALTER TABLESPACE <表領域名>
  READ {ONLY | WRITE}
;
表領域を書き込み不可にする例文
--(例)表領域(表領域名:test_tbs)を書き込み不可にする。 ALTER TABLESPACE test_tbs READ ONLY ;

表領域のONLINE/OFFLINE

表領域のONLINE/OFFLINEには ALTER TABLESPACE句を使用します。

ALTER TABLESPACE構文 (表領域のONLINE/OFFLINE)
ALTER TABLESPACE <表領域名>
  {ONLINE | OFFLINE}
;
表領域をOFFLINEにする例文
--(例)表領域(表領域名:test_tbs)をOFFLINEにする。 ALTER TABLESPACE test_tbs OFFLINE ;

表領域の削除

表領域の削除には DROP TABLESPACE句を使用します。

DROP TABLESPACE構文
DROP TABLESPACE <表領域名>
  [INCLUDING CONTENTS
    [AND DATAFILES]
    [CASCADE CONSTRAINTS]
  ]
;
パラメータ 説明
INCLUDING CONTENTS 削除しようとする表領域にオブジェクトが存在する時に指定する
AND DATAFILES 表領域の物理ファイルも削除する時に指定する
CASCADE CONSTRAINTS 削除しようとする表領域を参照している制約を、一緒に削除する時に指定する。
表領域の削除例文
--(例)表領域(表領域名:test_tbs)を削除する。 DROP TABLESPACE test_tbs INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS ;

表領域名の変更(Oracle10gから)

表領域名の変更には ALTER TABLESPACE句を使用します。
(表領域名の変更はOracle10gから可能です。)

ALTER TABLESPACE構文(表領域名の変更)
ALTER TABLESPACE <現表領域名> RENAME TO <新表領域名>;

表領域名の変更例文
--(例)表領域名を、test_tbs → test_tbs_new に変更する。 ALTER TABLESPACE test_tbs RENAME TO test_tbs_new ;

SYSTEM表領域、SYSAUX表領域の名称は変更できません。

ToTop