Oracle創建表空間


本Oracle教程解釋了如何使用Oracle CREATE TABLESPACE語句以及語法和示例。

CREATE TABLESPACE語句用於在存儲模式對象的Oracle數據庫中分配空間。

CREATE TABLESPACE語句可以用來創建3種表空間:

  • 永久表空間
  • 臨時表空間
  • 撤消表空間

下面我們分別來看看這3種表空間。

1. 永久表空間

永久表空間包含存儲在數據文件中的持久性模式對象。

創建永久表空間時,CREATE TABLESPACE語句的語法是:

CREATE
  [ SMALLFILE | BIGFILE ]
  TABLESPACE tablespace_name
  { DATAFILE { [ 'filename' | 'ASM_filename' ]
               [ SIZE integer [ K | M | G | T | P | E ] ]
               [ REUSE ]
               [ AUTOEXTEND
                   { OFF
                   | ON [ NEXT integer [ K | M | G | T | P | E ] ]
                   [ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
                   }
               ]
             | [ 'filename | ASM_filename'
             | ('filename | ASM_filename'
                 [, 'filename | ASM_filename' ] )
             ]
             [ SIZE integer [ K | M | G | T | P | E ] ]
             [ REUSE ]
             }
     { MINIMUM EXTENT integer [ K | M | G | T | P | E ]
     | BLOCKSIZE integer [ K ]
     | { LOGGING | NOLOGGING }
     | FORCE LOGGING
     | DEFAULT [ { COMPRESS | NOCOMPRESS } ]
   storage_clause
     | { ONLINE | OFFLINE }
     | EXTENT MANAGEMENT
        { LOCAL
           [ AUTOALLOCATE
           | UNIFORM
              [ SIZE integer [ K | M | G | T | P | E ] ]
           ]
        | DICTIONARY
        }
     | SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
     | FLASHBACK { ON | OFF }
         [ MINIMUM EXTENT integer [ K | M | G | T | P | E ]
         | BLOCKSIZE integer [ K ]
         | { LOGGING | NOLOGGING }
         | FORCE LOGGING
         | DEFAULT [ { COMPRESS | NOCOMPRESS } ]
         storage_clause
         | { ONLINE | OFFLINE }
         | EXTENT MANAGEMENT
              { LOCAL
                [ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
                | DICTIONARY
              }
         | SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
         | FLASHBACK { ON | OFF }
         ]
     }

參數

  • SMALLFILE - 包含1022個數據或臨時文件的表空間(每個文件最多可以有400萬個塊)。這是要創建的最常見的表空間大小。
  • BIGFILE - 只包含一個數據或臨時文件的表空間(該文件最多可以有400萬個塊)。

提示:如果省略SMALLFILEBIGFILE選項,Oracle數據庫將使用默認的表空間類型。

  • tablespace_name - 要創建的表空間的名稱。
  • storage_clause - storage_clause的語法是:
    STORAGE
     ({ INITIAL integer [ K | M | G | T | P | E ]
      | NEXT integer [ K | M | G | T | P | E ]
      | MINEXTENTS integer
      | MAXEXTENTS { integer | UNLIMITED }
      | PCTINCREASE integer
      | FREELISTS integer
      | FREELIST GROUPS integer
      | OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ]
      | BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
      }
         [ INITIAL integer [ K | M | G | T | P | E ]
         | NEXT integer [ K | M | G | T | P | E ]
         | MINEXTENTS integer
         | MAXEXTENTS { integer | UNLIMITED }
         | PCTINCREASE integer
         | FREELISTS integer
         | FREELIST GROUPS integer
         | OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ]
         | BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
         ]
     )
    

示例 - 永久表空間

以下是創建一個簡單的永久表空間的CREATE TABLESPACE語句:

CREATE TABLESPACE tbs_perm_01
  DATAFILE 'tbs_perm_01.dat' 
    SIZE 20M
  ONLINE;

這個CREATE TABLESPACE語句創建一個名為tbs_perm_01的永久表空間,其中有一個名為tbs_perm_01.dat的數據文件。
以下是創建一個永久表空間的CREATE TABLESPACE語句,當需要更多空間時將會擴展它:

CREATE TABLESPACE tbs_perm_02
  DATAFILE 'tbs_perm_02.dat' 
    SIZE 10M
    REUSE
    AUTOEXTEND ON NEXT 10M MAXSIZE 200M;

2. 臨時表格空間

臨時表空間包含存儲在會話期間存在的臨時文件中的模式對象。
創建臨時表空間時,CREATE TABLESPACE語句的語法是:

CREATE
  [ SMALLFILE | BIGFILE ]
  TEMPORARY TABLESPACE tablespace_name
    [ TEMPFILE { [ 'filename' | 'ASM_filename' ]
                 [ SIZE integer [ K | M | G | T | P | E ] ]
                 [ REUSE ]
                 [ AUTOEXTEND
                     { OFF
                     | ON [ NEXT integer [ K | M | G | T | P | E ] ]
                     [ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
                     }
                 ]
               | [ 'filename | ASM_filename'
               | ('filename | ASM_filename'
                   [, 'filename | ASM_filename' ] )
               ]
               [ SIZE integer [ K | M | G | T | P | E ] ]
               [ REUSE ]
               }
    [ TABLESPACE GROUP { tablespace_group_name | '' } ]
    [ EXTENT MANAGEMENT
       { LOCAL
          [ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
       | DICTIONARY
       } ]

參數說明

  • SMALLFILE - 包含1022個數據或臨時文件的表空間(每個文件最多可以有400萬個塊)。這是要創建的最常見的表空間大小。
  • BIGFILE - 只包含一個數據或臨時文件的表空間(該文件最多可以有400萬個塊)。

    提示:如果省略SMALLFILEBIGFILE選項,Oracle數據庫將使用默認的表空間類型。

  • tablespace_name - 要創建的表空間的名稱。

示例 - TEMPORARY TABLESPACE

以下是創建臨時表空間的CREATE TABLESPACE語句:

CREATE TEMPORARY TABLESPACE tbs_temp_01
  TEMPFILE 'tbs_temp_01.dbf'
    SIZE 5M
    AUTOEXTEND ON;

CREATE TABLESPACE語句創建一個名為tbs_temp_01的臨時表空間,其中有一個名為tbs_temp_01.dbf的臨時文件。

3. UNDO表空間

如果Oracle數據庫以自動撤消管理模式運行,則會創建撤消表空間來管理撤消數據。

CREATE
  [ SMALLFILE | BIGFILE ]
  UNDO TABLESPACE tablespace_name
    [ DATAFILE { [ 'filename' | 'ASM_filename' ]
                 [ SIZE integer [ K | M | G | T | P | E ] ]
                 [ REUSE ]
                 [ AUTOEXTEND
                     { OFF
                     | ON [ NEXT integer [ K | M | G | T | P | E ] ]
                     [ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
                     }
                 ]
               | [ 'filename | ASM_filename'
               | ('filename | ASM_filename'
                   [, 'filename | ASM_filename' ] )
               ]
               [ SIZE integer [ K | M | G | T | P | E ] ]
               [ REUSE ]
               }
    [ EXTENT MANAGEMENT
       { LOCAL
          [ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
       | DICTIONARY
       } ]
    [ RETENTION { GUARANTEE | NOGUARANTEE } ]

參數說明

  • SMALLFILE - 包含1022個數據或臨時文件的表空間(每個文件最多可以有400萬個塊)。這是要創建的最常見的表空間大小。
  • BIGFILE - 只包含一個數據或臨時文件的表空間(該文件最多可以有400萬個塊)。

    提示:如果省略SMALLFILEBIGFILE選項,Oracle數據庫將使用默認的表空間類型。

  • tablespace_name - 要創建的表空間的名稱。

示例 - UNDO TABLESPACE

以下是創建撤消表空間的CREATE TABLESPACE語句:

CREATE UNDO TABLESPACE tbs_undo_01
  DATAFILE 'tbs_undo_01.f'
    SIZE 5M 
    AUTOEXTEND ON
  RETENTION GUARANTEE;

這個CREATE TABLESPACE語句創建一個名為tbs_undo_01的撤銷表空間,其大小為5MB,並且有一個名為tbs_undo_01.f的數據文件。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM