表領域とデータファイルの管理 ※

表領域の作成

CREATE TABLESPACE 表領域名
DATAFILE 'ファイル名' {SIZE サイズ}
[AUTOEXTEND {OFF | ON [NEXT サイズ]
[MAXSIZE {UNLIMITED | サイズ}]}]
[MINIMUM EXTENT エクステント最小サイズ]
[BLOCKSIZE サイズ]
[DEFAULT STORAGE ( [INITIAL 初期エクステントサイズ]
                   [NEXT 増分エクステントサイズ]
                   [MINEXTENTS 作成時エクステント数]
                   [MAXEXTENTS {最大エクステント数 | UNLIMITED}]
                   [PCTINCREASE エクステントサイズ拡大率] ) ]
[PERMANENT | TEMPORARY]
[EXTENT MANAGEMENT {DICTIONARY |
                    LOCAL {AUTOALLOCATE | UNIFORM [SIZE サイズ]}}]
[ONLINE | OFFLINE]
[SEGMENT SPACE MANAGEMENT {MANUAL | AUTO}];
  • デフォルト設定
    • AUTOEXTEND OFF (データファイル自動拡張OFF)
    • PERMANENT (永続表領域)
    • EXTENT MANAGEMENT LOCAL AUTOALLOCATE (ローカル管理表領域(エクステント自動管理))
    • ONLINE (オンライン)
    • SEGMENT SPACE MANAGEMENT MANUAL (手動セグメント領域管理)

表領域の管理方法

ローカル管理表領域(デフォルト)

  • データファイル内のエクステント割り当てをビットマップで表示し、不要ブロックを解放
  • EXTENT MANAGEMENT LOCAL AUTOALLOCATE
    • エクステントをOracleサーバで自動管理
  • EXTENT MANAGEMENT LOCAL UNIFORM SIZE サイズ
    • 均一サイズを指定
  • 記憶領域設定の変更はできない

ディクショナリ管理表領域

  • エクステントをデータディクショナリで管理
  • EXTENT MANAGEMENT DICTIONARY
  • 各セグメントに対し、記憶領域パラメータの指定可
  • DEFAULT STORAGE句でのデフォルト指定可
  • 記憶領域設定の変更可
    ALTER TABLESPACE 表領域名
    {MINIMUM EXTENT エクステント最小サイズ[K | M] |
    DEFAULT STORAGE ( ~ ) };
    

一時表領域

  • ローカル管理表領域として作成される
  • ファイル名を変更することはできない
  • 表領域を読み取り専用に変更することはできない
  • 明示的にセグメントを作成することはできない
  • 一時表領域の作成
    CREATE TEMPORARY TABLESPACE 表領域名
    TEMPFILE データファイル名 {SIZE サイズ [K | M]}
    [EXTENT MANAGEMENT LOCAL
    [AUTOALLOCATE | UNIFORM [SIZE サイズ [K | M]]]];
    
  • デフォルト一時表領域の指定
    ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 表領域名;
    

読み取り専用表領域

  • オブジェクトの作成はできない
  • 表領域の削除はできる
  • オブジェクトの削除はできる
  • データの追加・更新・削除はできない
  • 表領域の書き込みを禁止/許可する
    ALTER TABLESPACE 表領域名 READ {ONLY | WRITE};
    

表領域の削除

DROP TABLESPACE 表領域名
[INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]];
  • INCLUDING CONTENTS
    • 表領域にオブジェクトが含まれている場合
  • AND DATAFILES
    • ファイルも削除
  • CASCADE CONSTRAINTS
    • 削除する表領域内のオブジェクトを参照する整合性制約も別の表領域から削除

表領域のサイズ拡大

データファイルを表領域に追加

ALTER TABLESPACE 表領域名
ADD DATAFILE 'ファイル名' [SIZE サイズ [K | M]]
[AUTOEXTEND {OFF | ON [NEXT サイズ [K | M]]}];

データファイルのサイズ変更

  • サイズを手動で変更
    ALTER DATABASE DATAFILE 'ファイル名' RESIZE サイズ [K | M];
    
  • 自動拡張に変更
    ALTER DATABASE DATAFILE 'ファイル名'
    AUTOEXTEND ON [NEXT サイズ [K | M]]
    MAXSIZE {UNLIMITED | サイズ [K | M]};
    

データファイルの移動

SYSTEM表領域以外

  1. ALTER TABLESPACE 表領域名 OFFLINE
  2. ファイルコピー
  3. ALTER TABLESPACE 表領域名 RENAME DATAFILE 'ファイル名' TO 'ファイル名'
  4. ALTER TABLESPACE 表領域名 ONLINE

SYSTEM表領域

  1. SHUTDOWN
  2. ファイルコピー
  3. STARTUP MOUNT
  4. ALTER DATABASE RENAME FILE 'ファイル名' TO 'ファイル名'
  5. ALTER DATABASE OPEN

OMF (Oracle-Managed Files)

  • DB_CREATE_FILE_DEST
    • デーファイルのデフォルトの作成ディレクトリ
  • DB_CREATE_ONLINE_LOG_DEST_n
    • REDOログファイルと制御ファイルのデフォルトの場所(最大5つまで)
  • ALTER SYSTEM SETコマンドで動的変更可能
  • 両方指定することも、一方のみ使用することも可能
  • デフォルトのサイズは100MB,上限なしの自動拡張に設定される
  • 一部のファイルの管理のみに使用することもできる

最終更新:2008年03月11日 01:30