ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE撤销表空间(Undo Tablespaces)

ORACLE撤销表空间(Undo Tablespaces)

原创 Linux操作系统 作者:hujunhua19 时间:2011-03-22 14:54:45 0 删除 编辑

撤销表空间(undo tablespace)是一个特殊的表空间(tablespace),只用于存
储撤销信息(undo information)。用户不能在其中创建段(segment)(例如
表或索引)。一个数据库中可以没有撤销表空间,也可以包含多个。在自动
撤销管理模式(automatic undo management mode)下,每个Oracle实例
(instance)有(且仅有)一个撤销表空间。Oracle在撤销表空间内自动地创
建和维护撤销段(undo segment),对撤销数据(undo data)进行管理。

当事务(transaction)内第一条 DML 语句运行时,系统就为期其在当前撤销
表空间(undo tablespace)中分配一个撤销段(undo segment),同时也分配
一个事务表(transaction table)。在极少数情况下,如果实例(instance)中
没有指定撤销表空间,那么事务将使用系统的撤销段。

警告:
在创建撤销表空间(undo tablespace),并使之联机(online)
之前,不要运行任何用户事务 (transaction)。

撤销表空间(undo tablespace)由一组撤销文件(undo file)构成,且为本地
管理的(locally managed)。与其他表空间(tablespace)的结构类似,撤销表
空间中也存在由撤销数据块(undo block)构成的数据扩展(extent),这些
数据扩展的状态由位图(bitmap)表示。在任何时间点上,一个数据扩展或
者被分配给一个事务表(transaction table)(被使用状态),或者处于可用状
态。

用户可以创建大文件撤销表空间(bigfile undo tablespace)

 

创建撤销表空间

数据库管理员可以使用 CREATE UNDO TABLESPACE 语句单独创建撤销表
空间(undo tablespace),也可以在使用 CREATE DATABASE 语句创建数据
库的同时创建撤销表空间。撤销表空间也使用一组数据文件存储数据。与常
规的表空间一样,撤销表空间既可以用 DROP TABLESPACE 语句移除,其属
性也可以通过 ALTER TABLESPACE 语句修改。

提示:
当撤销表空间(undo tablespace)正在被实例(instance)使用,
或者包含了事务恢复所需的撤销信息(undo information)时,
不能将其移除(drop)。

分配撤销表空间

用户可以使用以下两种方法将撤销表空间(undo tablespace)分配给一个实例
(instance):
● 在实例启动时。用户可以在实例的初始化文件(initialization file)中指
定一个撤销表空间,或指定由系统自动选择一个可用的撤销表空间。
● 当实例运行时。使用 ALTER SYSTEM SET UNDO_TABLESPACE 将当
前活动的撤销表空间替换为另一个。这种方式很少使用。

用户可以使用 ALTER TABLESPACE 语句向撤销表空间(undo tablespace)添
加数据文件(datafile),以扩展撤销表空间的容量。

用户可以创建多个撤销表空间(undo tablespace),以便切换使用。用户还可
以设定撤销信息(undo information)的保存周期(retention period)。用户也
可以使用数据库资源管理器(Database Resource Manager)为用户规定撤销表
空间的使用配额(quota)。


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

请登录后发表评论 登录
全部评论

注册时间:2011-03-21

  • 博文量
    18
  • 访问量
    17874