HOME >> Tips >> Oracle Tips >> SQL

表領域を変更する(ALTER TABLESPACE)

 
文書番号:20269




表領域にデータファイルを追加・削除するSQL。

・100Mの表領域を追加する


ALTER TABLESPACE 表領域名
 ADD DATAFILE 'データファイル名(フルパス指定可).dbf' SIZE 100M;

・100Mの表領域を追加する(自動拡張500Kで最大1024M)


ALTER TABLESPACE 表領域名
 ADD DATAFILE 'データファイル名(フルパス指定可).dbf' SIZE 100M
 AUTOEXTEND ON NEXT 500K MAXSIZE 1024M;

・表領域からデータファイルを削除する


ALTER TABLESPACE 表領域名
 DROP DATAFILE 'データファイル名1.dbf';

・表領域を追加する(その他のオプション)


ALTER TABLESPACE 表領域名
 --追加するデータファイルのパスとサイズを指定する
 ADD DATAFILE データファイル名 [SIZE ファイルサイズ]
   --自動拡張の指定をする。NEXT:増分値を指定 MAXSIZE:最大値を指定する(無制限はUNLIMITED)
   [AUTOEXTEND {OFF | ON NEXT サイズ [MAXSIZE {UNLIMITED | サイズ}]}]
 --最小のエクステントサイズを指定する
 [MINIMUM EXTENT エクステントサイズ]
 --表領域のブロックサイズを指定する
 [BLOCKSIZE ブロックサイズ]
 --表領域に対する変更をREDOログに出力する場合は「LOGGING」、しない場合は「NOLOGGING」を指定する
 [LOGGING | NOLOGGING]
 --エクステント管理をローカル管理にする場合は「LOCAL」、ディクショナリ管理の場合は「DICTIONARY」を指定する
 [EXTENT MANAGEMENT [LOCAL | DICTIONARY]]
 --表領域を使用可能にする場合は「ONLINE」、使用不可にする場合は「OFFLINE」する
 [ONLINE | OFFLINE]
 --通常の表領域は「PERMANENT」(デフォルト)、一時表領域は「TEMPORARY」を指定する
 [PERMANENT | TEMPORARY]
 --セグメントを自動管理にする場合は「AUTO」、手動管理は「MANUAL」を指定する
 [SEGMENT SPACE MANAGEMENT [MANUAL | AUTO]]
 --圧縮オプションを指定する
 --BASIC:基本圧縮 FOR OLTP:OLTP圧縮 FOR QUERY:データ:ウェアハウス圧縮 FOR ARCHIVE:オンラインアーカイブ圧縮
 
 [DEFAULT COMPRESS [BASIC | FOR OLTP | FOR QUERY | FOR ARCHIVE]]

・表領域のデータファイルを移動する


 --表領域をオフラインにする
ALTER TABLESPACE 表領域名 OFFLINE;

 --データファイルを移動先へコピーする
OSのコマンドなどでデータファイルをコピーします。

 --データファイルを変更する
ALTER TABLESPACE 表領域名 
  RENAME DATAFILE '変更前のデータファイル名をフルパスで指定.dbf'
  TO '変更後のデータファイル名をフルパスで指定.dbf';

 --表領域をオンラインにする
ALTER TABLESPACE 表領域名 ONLINE;
※表領域をONLINEにするタイミングで ORA-01113 エラーが発生する場合があります。
 その場合は RECOVER DATAFILE コマンドでメディアリカバリを実行してから再度 ONLINE にします。


 参考:「ORA-01113:ファイル22はメディア・リカバリが必要です