oracle 表空间

本文介绍了Oracle数据库中的表空间管理,包括默认的SYSTEM、SYSAUX、TEMP、UNDOTBS1和USERS表空间,以及永久表空间、临时表空间和重做表空间的类型。详细讲解了如何创建、删除和修改表空间,以及查看表空间使用情况的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值