ITPub博客

首页 > 数据库 > Oracle > tablespace 大文件,undo,temp tablespace

tablespace 大文件,undo,temp tablespace

原创 Oracle 作者:dotaddjj 时间:2011-09-13 17:56:34 0 删除 编辑

大文件表空间:

大文件表空间增强了oracle数据库的存储能力,一个小文件表空间最多可以包含1024个datafile,大文件表空间只能包含一个datafile,大文件表空间最大容量是小数据文件的1024倍。大文件表空间和小文件表空间的最大容量是相同的,但是在文件管理方面减少了对数据文件的管理工作。

使用大文件表空间替代传统的表空间,数据库open checkpoint以及dbwr进程的性能会得到提高,但是增大数据文件的容量可能增加备份和恢复时间。

System表空间是存储pl/sql程序结构,包括procedure function package trigger等,数据库打开后就必须将system表空间联机。如果system表空间是本地管理的,那么其余的tablespace都必须是本地管理,也就无法创建字典管理的tablespace了。

在oracle 10g中,Sysaux是system表空间的一个辅助性表空间。Oracle中很多组件默认存储在sysaux表空间中。Sysaux用来存储所有不存储在system表空间的数据元数据,不允许drop和rename sysaux表空间。Sysaux表空间不支持也移动表空间功能。

撤销表空间只存储撤销段,无法在撤销表空间中创建段。如果实例没有分配执行撤销表空间,那么事务将使用系统的撤销段。当undo tablespace正在被instance使用或者包含了事务所需的撤销信息,不能移除。

替换默认的undo tablespace:首先create一个undo tablespace,然后alter system set undo_tablespace=’’ scope=both 这样就重新创建了一个undo tablespace并让其存储后续事务的回滚段信息。

既然提到了undo tablespace,就有flashback query,闪回查询正是利用undo tablespace的回滚段信息来实现的,当然undo tablespace必须是自动回滚段管理。

自动回滚段管理需要设置两个参数一个是undo_management和undo_tablespace,在oracle9I后undo_management默认的是auto,undo_tablespace是默认的undo tablespace,只要设置这两个参数oracle就回采取自动管理撤销表空间。

闪回查询:

select * from test01 as of timestamp to_timestamp(‘2011-9-13 10:00:00’,’yyyy-mm-dd hh24:mi:ss’)

回滚段的保留undo_retention:

flashback query正是利用undo tablespace来实现的。其中参数undo_retention是保留回滚段信息的时间,但是并不是回滚段保留一定会是undo_retention,当回滚段不足时新事物会自动覆盖已提交的事务的数据,而不会管这些数据是否达到了undo_retention;当然如果超过undo_retention的限制,回滚段会被标记为可重用,不过undo tablespace足够大,事务交替不是很频繁,即使超过undo_retention的限制回滚段的数据可能还是存在。

如果强制执行该回滚段在undo_retention限制内有效。

Alter tablespace undotbs1 retention guarantee

临时表空间:

如果system是本地管理的,oracle会要求创建默认的temporary tablespace,如果是字典管理且没有定义临时表空间,会使用system表空间作为临时表空间。

替换默认的临时表空间为temp02

Create temporary tablespace temp02 tempfile ‘’ size 50M

Alter database temporary tablespace temp02

上述过程和替换default tablespace基本一样。

表空间脱机,联机。

表空间脱机或联机的信息存储在system表空间的数据字典中,在数据库开启时offline的表空间下次启动时依然是offline状态,当某些错误发生时,oracle会自动地将祥光的联机表空间切换到脱机状态,dbwn进程往数据文件多次失败后,oracle就会将此表空间切换到脱机状态。

排序使用的临时表空间

使用专用的临时表空间排序,能解决频繁的排序空间分配与回收而造成的空间管理,一个sql语句可以使用多个临时表空间排序。

排序段

临时表空间与用户用于创建临时段的表空间不同,临时段可以在任何表空间中,临时表空间中不能存储永久方案对象,排序段sort segment是多个排序操作共享的段。当使用多重排序时,且所需空间超过pga的内存区域时,使用临时表空间有助于提升性能。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1055012/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    220
  • 访问量
    1662981