oracle 表空间

来源:互联网 发布:淘宝店促销价怎么设置 编辑:程序博客网 时间:2024/06/03 22:55
1.基本的表空间
系统中默认创建的几个表空间:
SYSTEM
SYSAUX
TEMP
UNDOTBS1
USERS

SYSTEMSYSAUX 、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

columndescriptionTABLESPACE 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 onlyCONTENTS表空间内容:undo(撤销)/permament(永久)/temporary(临时)logginglogging/nologgingforce logging强制记录日志,即对数据库中的所有操作都产生日志信息,并将该信息写入到联机重做日志文件 yes/noEXTENT MANAGEMENT指示表空间是字典管理(dictionary)还是本地管理(local)ALLOCATION_TYPE
1、system:默认值。一旦设定该值,next_extent将为空,只有extents值。
2、 user:当表空间是数据字典管理的或是从数据字典管理转移到local 时出现,设定该值后可以控制next_extent了。
3、uniform:所有的extent的大小将一致,temp表空间只能采用这个方式。
PLUGGED_INYES/NO 表空间是否被阻塞SEGMENT_SPACE_MANAGEMENT表空间空闲段的管理 auto(自动)/manual(手动)DEF_TAB_COMPRESSIONENABLED/DISABLED 表空间是否可压缩RETENTION
撤销表空间保留
在AUM模式下,我们知道UNDO_RETENTION参数用以控制事务提交以后undo信息保留的时间。该参数以秒为单位,9iR1初始值为900秒,在Oracle9iR2增加为10800秒。但是这是一个NO Guaranteed的限制。
也就是说,如果有其他事务需要回滚空间,而空间出现不足时,这些信息仍然会被覆盖。
 (http://www.eygle.com/archives/2005/03/oracle10gaeundo.html) 
1.GUARANTEE 是undo表空间,undo数据在未到期之前保留
2.NOGUARANTEE 是undo表空间
3.NOT APPLY 不是undo表空间
BIGFILEYES(大文件表空间)/no (小文件表空间)ENCRYPTEDYES/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; 
0 0
原创粉丝点击