Oracle表空间

理解oracle11g的临时表空间的作用
掌握创建oracle11g的临时表空间的方法
掌握oracle11g临时表空间的相关操作


临时表空间:用来存放用户的临时数据,临时数据就是在需要时被覆盖,关闭数据库后自动删除,其中不能存放永久性数据。

例如当用户对很多数据行进行排序时,排序在PGA中进行。但是如果排序的数据过多,导致内存不足时,oracle会把要排序的数据分成多份,每次只取一份放在PGA中进行排序,其他的部分都放到临时表空间中,当PGA里的部分排序完成后,把排序好的部分交换到临时表空间中,同时再从临时表空间里取一份没有排序的数据到PGA中进行排序,这样直到所有数据排序完成为止。


临时表空间组是一组由临时表空间组成的组,临时表空间组和临时表空间不能同名。临时表空间组不能显式地创建和删除;当把第一个临时表空间分配给某个临时表空间组时,会自动创建这个临时表空间组;将临时表空间组的最后一个临时表空间删除时,会自动删除临时表空间组。


查看临时文件信息:

select * from v$tempfile;
select * from dba_temp_files;

查看临时表空间组的信息:

select * from dba_tablespace_groups;

查看临时表空间的信息:

select * from dba_tablespaces;

查找默认的临时表空间:

select property_name, property_value from database_properties where property_name = 'DEFAULT_TEMP_TABLESPACE';

创建临时表空间(不属于组):

create temporary tablespace temp2 tempfile 'D:\app\Administrator\oradata\orcl\temp2a.dbf' size 10m autoextend on;

创建临时表空间(属于组):

create temporary tablespace temp3 tempfile 'D:\app\Administrator\oradata\orcl\temp3a.dbf' size 10m autoextend on tablespace group temp_grp;   

把某个临时表空间关联到组里:

alter tablespace temp2 tablespace  group temp_grp; 

把某个临时表空间移出组:

alter tablespace temp2 tablespace group ''; 

给一个临时表空间增加临时文件:

alter tablespace temp2 add tempfile 'D:\app\Administrator\oradata\orcl\temp2b.dbf' size 20m autoextend on;

设置数据库的默认临时表空间为一个组:

alter database default temporary tablespace temp_grp;   


理解oracle11g的UNDO表空间的作用和工作机制
掌握oracle11g的UNDO表空间的相关操作
理解oracle11g中UNDO表空间的新特性:RMAN UNDO备份优化。


undo管理的方式

1)对于DML语句来说,只要修改了数据块,Oracle数据库就会将修改前的数据保留下来,保存在undo segment里,而undo segment则保存在undo表空间里。
2)对于UNDO的管理,有手工Undo管理和自动Undo管理,9i前只能使用手工Undo管理,11g默认使用自动Undo管理。


oracle11g的UNDO表空间

1)UNDO的作用:提供一致性读、回滚事务、实例恢复。
2)UNDO表空间:undo segment则保存在undo表空间里,数据库中可以同时存在多个undo表空间,但是在一个时间点上,数据库只能使用一个undo表空间。如果我们将undo_tablespace参数设置为 另外一个undo表空间的名字,则这叫做undo表空间的切换。


oracle11g的UNDO相关的重要参数

undo_retention:该参数以秒为单位,表示当事务提交或回滚以后,该事务所使用的undo块里的数据需要保留多长时间;当保留的时间超过undo_retention所指定的时间以后,该undo块才能够被其他事务覆盖。
rentention garentee:从Oracle 10g开始,我们可以通过为undo表空间设置retention guarantee属性,可以达到的效果是:当undo数据文件不能自动扩展,并且undo块不够用时,直接报错,而不是覆盖那些 inactive而又没有expired的undo块。


oracle11g的UNDO表空间的操作

1)查看系统中有哪些UNDO表空间:

select tablespace_name, CONTENTS from dba_tablespaces; 

2)查看UNDO表空间的管理方式:手工管理和自动管理

show parameter undo_management;

2)增加一个回滚表空间Undo Tablespace,叫undotbs2,用来存放回滚段中的数据,记录数据改变的旧值。

create undo tablespace undotbs2 datafile 'D:\app\Administrator\oradata\orcl\undotbs201.dbf' size 10m;

3)给回滚表空间 undotbs2 增加一个数据文件:

alter tablespace undotbs2 add datafile 'D:\app\Administrator\oradata\orcl\undotbs202.dbf' size 10M autoextend on;

4)查看数据文件以及其所属的表空间:

select * from dba_data_files;

5)查看系统的默认的UNDO表空间:

show parameter undo_tablespace 

6)切换UNDO表空间:

alter system set undo_tablespace = UNDOTBS2;

7)启用rentention garentee:

alter tablespace undotbs1 retention guarantee;

8)查看了是否启用了rentention garentee :

select tablespace_name, retention from dba_tablespaces;

9)取消rentention garentee:

alter tablespace undotbs1 retention noguarantee;

重要视图:v$undostat每十分钟更新一次,记录了UNDO表空间的使用情况。


oracle11g的UNDO表空间的新特性

1)在Oracle Database 11g中,Oracle引入了一个新的特性RMAN UNDO备份优化。在RMAN备份UNDO表空间时,提交事务的UNDO信息将不备份,这个特性随RMAN强制启用。
2)在一个繁忙的生产环境中,UNDO表空间可能占用几十GB的空间,全部备份显然并不合理,这一特性是许多DBA期待已久的,现在Oracle 11g解决了这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值