CREATE TABLESPACE

说明

创建一个表空间

语法

create_tablespace ::=

permanent_tablespace_clause ::=

temporary_tablespace_clause ::=

undo_tablespace_clause ::=

data_file_spec ::=

autoextend_clause ::=

opt_max_size ::=

size_clause ::=

default_storage_option ::=

logging_clause ::=

buffer_pool ::=

encrypt_option ::=

参数

tablespace_name

要创建的表空间名

DATAFILE | TEMPFILE

指定创建数据文件。DATAFILE,创建持久表空间或还原表空间时使用;TEMPFILE,创建临时表空间时使用。

注解

回滚表空间的数据文件只允许指定一个,且后续不允许添加。

datafile_path

要增加的数据文件路径

SIZE size [K | KB | M | MB | G | GB | T | TB]

指定数据文件大小,K,KB,M,MB,G,GB,T,TB分别是可选的字节单位,默认是M(兆字节)

AUTOEXTEND

指定数据文件自动增长属性

OFF | ON

指定数据文件是否自动增长, OFF不自动增长,ON自动增长

NEXT size [K | KB | M | MB | G | GB | T | TB]

分区大小的增长步长, K,KB,M,MB,G,GB,T,TB分别是可选的字节单位,默认是M(兆字节),增长步长为64k的倍数

MAXSIZE {UNLIMITED | size [K | KB | M | MB | G | GB | T | TB]}

指定数据文件的最大长度,UNLIMITED为长度不受限制。

LOGGING | NOLOGGING

对表空间上创建的对象进行的操作默认记日志或不记日志。

NOLOGGING可以使对象上的操作产生的日志量最少,通常指定NOLOGGING可以改善大数据量操作的性能,对少量数据的操作只有很小的影响,在大数据量NOLOGGING操作结束后应当将对象改回LOGGING模式。除以下操作外,不建议对其它操作使用NOLOGGING模式:

CREATE INDEX、ALTER INDEX REBUILD、INSERT INTO ... SELECT

上述三种操作都会造成大量的大对象数据操作,建议使用NOLOGGING记录日志,如果使用LOGGING,会记录大量日志,降低操作效率。

由于NOLOGGING模式下记录的少量日志无法满足数据库回滚和介质恢复的需要,你必须非常谨慎地使用这种模式,而且要与负责备份和恢复的人沟通之后才能使用。在执行NOLOGGING操作前应当为可能受影响的数据文件建立一个备份,一旦操作失败或发生事务回滚,必须从备份进行恢复,以避免产生数据不一致的情况。 执行NOLOGGING操作后,必须执行ALTER SYSTEM CHECKPOINT命令建立检查点强制数据刷新到磁盘上,并尽快为受影响的数据文件建立一个新的基准备份,从而避免由于介质失败而丢失对这些对象的后续修改。

对象之间的LOGGING属性是相互独立的,表与LOB字段、表与索引的LOGGING属性都不会互相影响。例如,如果想对索引在NOLOGGING模式下重建,只需执行ALTER INDEX ... REBUILD NOLOGGING. 并不需要对表进行NOLOGGING设置。

INIT size [ K | KB | M | MB | G | GB | T | TB ]

段大小的初始值, K,KB,M,MB,G,GB,T,TB分别是可选的字节单位

默认是M(兆字节)

NEXT size [ K | KB | M | MB | G | GB | T | TB ]

段大小的增长步长, K,KB,M,MB,G,GB,T,TB分别是可选的字节单位,增长步长为64k的倍数

默认是M(兆字节)

PCTINCREASE pctincsize

段增长步长的增长比例。每次段增长的大小比上次段增长的大小多pctincsize%

MAX size [ K | KB | M | MB | G | GB | T | TB ]

段大小的最大值, K,KB,M,MB,G,GB,T,TB分别是可选的字节单位

默认是M(兆字节)

PCTFREE freesize

保留空闲空间百分比,详见 sys_segment(段信息) 的 PCTFREE 列的说明

PCTUSED usedsize

恢复可插入的空间百分比,详见 sys_segment(段信息) 的 PCTUSED 列的说明

FILL fillsize

索引填充系数,详见 sys_segment(段信息) 的 PCTFREE 列的说明

SPLIT splitsize

索引分裂系数,详见 sys_segment(段信息) 的 PCTUSED 列的说明

BUFFER_POOL {KEEP|RECYCLE|DEFAULT|SEQUENCE}

BUFFER_POOL子句用于为指定的模式对象指定一个默认的缓存方式。

  • 指定KEEP,表示尽量将该模式对象数据缓存在内存中;
  • 指定RECYCLE,表示采用LRU算法换出该模式对象数据;
  • 指定SEQUENCE,表示按顺序换出该模式对象数据;

指定DEFAULT时,表示采用系统默认的缓存方式,当前系统默认缓存方式为RECYCLE。

ENCRYPT | DECRYPT

指定表空间加密模式。

ENCRYPT: 设置表空间为加密模式。

DECRYPT: 设置表空间为非加密模式。

缺省时,表空间的加密模式将保持与数据库的加密模式一致。

USING 'encrypt_algorithm'

指定加密算法。目前支持的加密算法包括:'des3' 、 'aes128' 、 'aes192' 、 'aes256' 、 'sm4'。

RETENTION { GUARANTEE | NOGUARANTEE }

这个子句只修饰还原表空间。RETENTION GUARANTEE指定数据库保护还原表空间中所有未失效的数据,当空间不足时,正在进行的事务将因空间不足而失败;RETENTION NOGUARANTEE恢复正常的还原表空间,不会强制保护数据,当空间不足时,如果需要,正在进行的事务将覆盖部分未过期的数据来获取足够的空间用以完成事务。

注解

创建表空间将为数据库分配新的空间。表空间可以包含多个数据文件。

示例

示例1: 创建表空间

--  清理环境
DROP TABLESPACE ts1;

--  创建表空间
CREATE TABLESPACE ts1 DATAFILE 'ts1.dt';

--  删除表空间
DROP TABLESPACE ts1;

--  创建表空间,同时数据创建文件,文件可自动增长
CREATE TABLESPACE ts1 DATAFILE 'ts1.dt' SIZE 5M AUTOEXTEND ON NEXT 5M;

CREATE TABLESPACE ts2 DATAFILE 'ts2.dt' SIZE 5M AUTOEXTEND ON NEXT 5M DEFAULT BUFFER_POOL DEFAULT;

--  删除表空间
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;

示例2: 创建临时表空间

--  清理环境
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;

--  创建临时表空间
CREATE TEMPORARY TABLESPACE ts1 TEMPFILE 'ts1.dt';

--  创建临时表空间
CREATE TEMPORARY TABLESPACE ts2 TEMPFILE 'ts2.dt' SIZE 10 DEFAULT NOLOGGING;

--  删除表空间
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;

示例3: 创建还原表空间

--  清理环境
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;

--  创建UNDO表空间,带RETENTION GUARANTEE关键字
CREATE UNDO TABLESPACE ts1 DATAFILE 'ts1.dt' SIZE 5M RETENTION GUARANTEE;

CREATE UNDO TABLESPACE ts2 DATAFILE 'ts2.dt' SIZE 5M;

--  删除表空间
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;

示例4: 给表空间加密

--  清理环境
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;

--  创建加密表空间,使用"sm4"加密模式
CREATE TABLESPACE ts1 DATAFILE 'ts1.dt' SIZE 5M DEFAULT ENCRYPT USING 'sm4' ;

--  创建加密表空间,使用数据库默认的加密模式
CREATE TABLESPACE ts2 DATAFILE 'ts2.dt' SIZE 5M DEFAULT ENCRYPT;

--  删除表空间
DROP TABLESPACE ts1;
DROP TABLESPACE ts2;