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
万个块)。
提示:如果省略
SMALLFILE
或BIGFILE
选项,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
万个块)。提示:如果省略
SMALLFILE
或BIGFILE
选项,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
万个块)。提示:如果省略
SMALLFILE
或BIGFILE
选项,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
的数据文件。