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的数据文件。


posted @ 2018-03-19 08:19  YouseiRaws  阅读(18625)  评论(0编辑  收藏  举报