目录
1.表空间
(1)创建表空间
(2)管理表空间
(3)删除表空间
补充
Oracle学习的相关知识点(汇总)
1.表空间
表空间由数据文件组成,这些数据文件是数据库实际存放数据的地方,数据库的所有系统数据和用户数据都必须存放在数据文件中。创建一个数据库时,系统都会默认地为它创建一个“SYSTEM”表空间以存储系统信息。
(1)创建表空间
下面的参数和说明都是比较复杂的,只有慢慢的和不断的练习才能更好的掌握。
格式:
CREATE TABLESPACE <表空间名>
DATAFILE '/<文件路径>/<文件名>' [SIZE<文件大小> [ K∣M ]] [ REUSE ]
[ AUTOEXTEND [ OFF∣ON [ NEXT <磁盘空间大小>[ K∣M ]]
[ MAXSIZE [ UMLIMITED∣<最大磁盘空间大小> [ K∣M ] ] ] ]
[ MINMUM EXTENT<数字值> [ K | M ] ]
[ DEFAULT <存储参数>]
[ ONLINE∣OFFLINE ]
[ LOGGING∣NOLOGGING ]
[ PERMANENT∣TEMPORARY ]
[ EXTENT MANAGEMENT [ DICTIONARY∣LOCAL [ AUTOALLOCATE∣UNIFORM [ SIZE <数字值>[K | M]]]]]
说明
- DATAFILE子句:用于为表空间创建数据文件,格式与CREATE DATABASE语句中的DATAFILE子句相同。
- AUTOEXTEND:用于指定是否禁止或允许自动扩展数据文件。若选择OFF,则禁止自动扩展数据文件。 若选择ON,则允许自动扩展数据文件。NEXT指定当需要更多盘区时分配给数据文件的磁盘空间。
- MAXSIZE:指定允许分配给数据文件的最大磁盘空间。其中,UMLIMITED表示对分配给数据文件的 磁盘空间没有设置限制。
- MINMUM EXTENT:指定最小的长度,默认为操作系统和数据库块确定。
- ONLINE和OFFLINE:ONLINE表示在创建表空间之后,使授权访问该表空间的用户立即可用该表空间; OFFLINE表示在创建表空间之后使该表空间不可用,默认为ONLINE
<存储参数>::= STORAGE
(
INITIAL <第一个区的大小>[ K︱M ]
NEXT<下一个区的大小> [ K︱M ]
MINEXTENTS ︱<区的最小个数>UNLIMITED
MAXEXTENTS <区的最大个数>
PCTINCREASE <数字值>.
FREELISTS<空闲列表数量>
FREELIST GROUPS<空闲列表组数量>
)
- INITIAL指定对象(段)的第一个区的大小,单位为KB或MB,默认值是5个数据块的大小;
- NEXT指定下一个区以及后续区的大小,单位为KB或MB,最小值是1个数据块的大小
- MINEXTENTS指定创建对象(段)时就应该分配的区的个数,默认为1;
- MAXEXTENTS指定可以为一个对象分配的区的最大个数,该参数最小值是MINEXTENTS;
- PCTINCREASE指定第3个区以及后续区在前面区的基础之上增加的百分比; FREELISTS指定表、簇或索引的每个空闲列表组的空闲列表数量;
- FREELIST GROUP指定表、簇或索引的空闲列表组的数量
- LOGGING/NOLOGGING:指定日志属性,它表示将来的表、索引等是否需要进行日志处理。默认值 为LOGGING。
- PERMANENT:指定表空间,将用于保存永久对象,这是默认设置。
- TEMPORARY:指定表空间,将用于保存临时对象。
- EXTENT MANAGEMENT:指定如何管理表空间的盘区。
- DICTIONARY:指定使用字典表来管理表空间,这是默认设置。
- LOCAL:指定本地管理表空间。
- AUTOALLOCATE:指定表空间由系统管理,用户不能指定盘区尺寸。
- UNIFORM:指定使用SIZE字节的统一盘区来管理表空间。默认的SIZE为1MB。如果既没指定 AUTOALLOCATE又没指定UNIFORM,那么默认为AUTOALLOCATE。
注意:指定了LOCAL,那么就不能指定DEFAULT<存储参数>和TEMPORARY;
例子1:创建一个20MB大小的表空间,包含日志处理并且是不允许自动扩展数据文件的。
CREATE TABLESPACE DEMOTAB
DATAFILE 'E:\Oracle\TableSpace\demo1.DBF' SIZE 20M REUSE
AUTOEXTEND OFF
LOGGING;
例子2:例子1:创建一个20MB大小的表空间,包含日志处理并且是允许自动扩展数据文件的。
CREATE TABLESPACE DEMOTAB1
DATAFILE 'E:\Oracle\TableSpace\demo2.DBF' SIZE 20M REUSE
AUTOEXTEND ON NEXT 1M MAXSIZE 30M
LOGGING
EXTENT MANAGEMENT LOCAL;
(2)管理表空间
利用ALTER TABLESPACE命令可以修改现有的表空间或它的一个或多个数据文件。可以为数据库中每一个数 据文件指定各自的存储扩展参数值
格式:
ALTER TABLESPACE <表空间名>
[ADD DATAFILE | TEMPFILE '/<文件路径>/<文件名>' [SIZE<文件大小> [ K∣M ]] ]
[ REUSE ]
[ AUTOEXTEND [ OFF∣ON [ NEXT <磁盘空间大小>[ K∣M ]]
[ MAXSIZE [ UMLIMITED∣<最大磁盘空间大小> [ K∣M ] ] ] ]
[RENAME DATAFILE '<路径>/<文件名>',...n TO '<路径>/<新文件名>',...n]
[ DEFAULT <存储参数>]
[ ONLINE∣OFFLINE [ NORMAL∣TEMPORARY∣IMMEDIATE ]]
[ LOGGING∣NOLOGGING ]
[ PERMANENT∣TEMPORARY ]
[READ ONLY | WRITE]
说明
- ADD DATAFILE∣TEMPFILE:向表空 间添加指定的数据文件或临时 文件
- RENAME DATAFILE:对一个 或多个表空间的数据文件重命名。 在重命名数据文件之前要使表空间 脱机
- READ WRITE:表明在先前 只读表空间上允许写操作。
- READ ONLY:表明表空间上 不允许进一步写操作。该子句在 现有的事务全部提交或回滚后才 生效,使表空间变成只读。
例子:将新的数据文件添加到已有的表空间DEMOTAB1。
ALTER TABLESPACE DEMOTAB1
ADD DATAFILE 'E:\Oracle\TableSpace\demo3.DBF' SIZE 20M REUSE
AUTOEXTEND ON NEXT 1M MAXSIZE 30M;
(3)删除表空间
DROP TABLESPACE <表空间名>
[INCLUDING CONTEINTS [{AND | KEEP}DATAFILES]
[CASCADE CONSTRAINTS]
];
提示:在删除表空间之前,如果其中还保留有数据库对象,则必须使用INCLUDING CONTENTS子句,表示表空间和其中保存的数据库对象全部删除,但对应的数据文件并不会从操作系统中被删除。
如果要删除表空间对象的数据文件,则必须使用AND DATAFILES;
如果要保留数据文件,则加上KEEP DATAFILES。
使用CASCADE CONSTRAINTS用于删除与表空间相关的数据文件,但只对最新创建的或者最后一个表空间有效。
例子:删除表空间DEMOTAB1,并且删除相关的数据文件和对象。
DROP TABLESPACE DEMOTAB1
INCLUDING CONTENTS AND DATAFILES;提示:申请的空间越大,那么删除的过程时间也就越长。
补充
如果要查看表空间的情况:
SELECT FILE_NAME, BYTES
FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME = 'DEMOTAB1';
select *
from dba_data_files
where tablespace_name='DEMOTAB1';
--未使用的表空间大小
select tablespace_name,sum(bytes)/1024/1024
from dba_free_space
group by tablespace_name;
--查看每个表占用的空间大小:
select segment_name,sum(bytes)/1024/1024
from user_extents
group by segment_name;
--查看每个表占用的空间大小:
select segment_name,sum(bytes)/1024/1024
from user_extents
group by segment_name;
更多推荐
Oracle数据库的表空间(一)
发布评论