1.
基本的表空间
系统中默认创建的几个表空间:
SYSTEM
SYSAUX
TEMP
UNDOTBS1
USERS
SYSTEM
、
SYSAUX
、TEMP、
UNDO是必须的。
2.表空间类型
(1)永久表空间
保留永久对象,保存在data file
(2)临时表空间
保留只存在session对象,保存在temp file
(3)重做表空间
只在启用自动重做管理时,管理重做数据。
3.创建表空间
e.g
create
tablespace
wuhen
datafile
'E:\oracle\product\10.2.0\oradata\wuhen\wuhen01.dbf'
--数据文件位置
size
10
m
--数据文件大小
nologging
--默认logging
blocksize
8
k;
--块大小,默认与数据库建立时一致,否则报ORA-29339: 表空间块大小 xxx 与配置的块大小不匹配
--若需设置为不同,如16k需设置16kb非标准数据块数据缓冲区大小----
--alter system set db_16k_cache_size=16m
4.删除
DROP TABLESPACE 表空间名 [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]
如果在删除表空间的同时要删除对应的数据文件,则必须显示的指定INCLUDING CONTENTS AND DATAFILES子句,否则需手动删除。
e.g drop tablespace wuhen including contents and datafiles;
5.修改
alter tablespace 表空间名 add datafile '数据文件名称路径' size 50M;
6.查看表空间使用情况
(1)了解 dba_tablespaces
column | description |
TABLESPACE NAME | 表空间名 |
BLOCK_SIZE | 表空间块大小,应该设为操作系统块容量的整数倍 |
INITIAL_EXTENT | 初始扩展数 |
NEXT_EXTENT | 下一个分配的extent大小,若为null,是自动分配。当建立一个表段时,Oracle为该段分配初始区,如果之后由于数据的插入,初始区装满后,将继续分配下一个区 |
MIN_EXTENTS | 最小扩展数 |
MAX_EXTENTS | 最大扩展数 |
MAX_SIZE | 段最大值 |
PCT_INCREASE |
指第三个或后续的区间(EXTENT)是前面区间的增长百分比。
For an example:
pct_increase = 50%, initial=64k, next = 64k
第一个extent 的大小 64k(initial)
第二个extent 的打小 64k(next) 第三个extent 的大小 64K X (1 + 50%) = 96K 第四个extent 的大小 96K X (1+50%) = 144k
第五个extent 的大小 144K X (1+50%) = 216k
|
MIN_EXTLEN | 最小块大小值 |
STATUS | 表空间状态 :online/offline/read only |
CONTENTS | 表空间内容:undo(撤销)/permament(永久)/temporary(临时) |
logging | logging/nologging |
force logging | 强制记录日志,即对数据库中的所有操作都产生日志信息,并将该信息写入到联机重做日志文件 yes/no |
EXTENT MANAGEMENT | 指示表空间是字典管理(dictionary)还是本地管理(local) |
ALLOCATION_TYPE |
1、system:默认值。一旦设定该值,next_extent将为空,只有extents值。
2、 user:当表空间是数据字典管理的或是从数据字典管理转移到local 时出现,设定该值后可以控制next_extent了。
3、uniform:所有的extent的大小将一致,temp表空间只能采用这个方式。
|
PLUGGED_IN | YES/NO 表空间是否被阻塞 |
SEGMENT_SPACE_MANAGEMENT | 表空间空闲段的管理 auto(自动)/manual(手动) |
DEF_TAB_COMPRESSION | ENABLED/DISABLED 表空间是否可压缩 |
RETENTION |
撤销表空间保留
在AUM模式下,我们知道UNDO_RETENTION参数用以控制事务提交以后undo信息保留的时间。该参数以秒为单位,9iR1初始值为900秒,在Oracle9iR2增加为10800秒。但是这是一个NO Guaranteed的限制。
也就是说,如果有其他事务需要回滚空间,而空间出现不足时,这些信息仍然会被覆盖。
1.GUARANTEE 是undo表空间,undo数据在未到期之前保留
2.NOGUARANTEE 是undo表空间
3.NOT APPLY 不是undo表空间
|
BIGFILE | YES(大文件表空间)/no (小文件表空间) |
ENCRYPTED | YES/NO 表空间是否加密 |
(2)查看表空间的数据文件
永久表空间/UNDO表空间
SELECT
*
FROM
DBA_DATA_FILES;
临时表空间
SELECT
*
FROM
V$TEMPFILE;
(3)查看表空间使用情况
SELECT
a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes *
100
) / a.bytes "% USED ",
(c.bytes *
100
) / a.bytes "% FREE "
FROM
sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE
a.tablespace_name = b.tablespace_name
AND
a.tablespace_name = c.tablespace_name;