Top > ALTER TABLESPACE > ALTER TABLESPACE <DATAFILE>

ALTER TABLESPACE <DATAFILE>

以下の操作を行なうには ALTER TABLESPACE システム権限 が必要。
SYSAUX 表領域に対して変更を行なうには SYSDBA システム権限 が必要となる。

ALTER TABLESPACE ADD DATAFILE

表領域 my_tablespace に サイズ 10M の自動拡張しないデータファイルを追加する。
既にデータファイルが存在していればエラーにする。

ALTER TABLESPACE my_tablespace 
      ADD DATAFILE '/u01/oracle/oradata/orcl/users02.dbf'
      SIZE 10M;

表領域 my_tablespace に 初期サイズ 10M で 上限なしに 5M 単位にファイルサイズを自動拡張するデータファイルを追加する。
既にそのファイルが存在していれば上書き利用 (REUSE) する。

ALTER TABLESPACE my_tablespace 
      ADD DATAFILE '/u01/oracle/oradata/orcl/users02.dbf'
      SIZE 10M
      REUSE
      AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;

REUSE は作業の失敗などで不要となったデータファイルが存在しているとき向けの構文

ALTER TABLESPACE DROP DATAFILE Oracle 10g Release2

表領域 my_tablespace で使用しているデータファイルを論理的、物理的に削除する。
データファイルを追加する表領域の誤りやファイル名のミスをしてしまったときなどに便利。

ALTER TABLESPACE my_tablespace 
      DROP DATAFILE '/u01/oracle/oradata/orcl/users02.dbf';

制限事項

表領域における1つ目のデータファイルは削除できない。
使用済の有無に関係なくデータファイル内に獲得済セグメント(エクステント)が存在すると削除できない。TRUNCATE しても初期エクステント(セグメントヘッダ)は解放されない(※)。オブジェクトを DROP するか ALTER TABLE MOVEALTER INDEX REBUILD 等、別の表領域にセグメントを一時退避させデータファイルを空の状態にしてから行なう。
ごみ箱に残ったものも同様に完全削除 (PURGE RECYCLEBIN) する必要がある。

(※) 初期エクステントを大きく確保してしまった場合には ALTER TABLE DEALLOCATE KEEP size で縮退させることができる。

上記制限事項の緩和 Oracle 11g Release2 (11.2.0.2) 〜

11.2.0.2 の新機能として TRUNCATE TABLE に DROP ALL STORAGE 構文が追加され初期エクステントも解放できるようになっている。

ALTER TABLESPACE RENAME DATAFILE

表領域 my_tablespace で使用しているデータファイルの名前を論理的に変更する。
ファイル名の変更には事前に my_tablespace をオフラインにする必要がある。

ALTER TABLESPACE my_tablespace 
      RENAME DATAFILE '/u01/oracle/oradata/orcl/users02_old.dbf'
      TO '/u01/oracle/oradata/orcl/users02_new.dbf';

データファイルを論理的に変更するだけで物理ファイルは変更されない。OS 等で別途変更する。
ALTER DATABASE DATAFILE RENAME old_filename TO new_filename でも変更可能。



表領域に関連する内容

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー