ITPub博客

首页 > 数据库 > Oracle > ORACLE笔记十三

ORACLE笔记十三

原创 Oracle 作者:wodemingzizhen 时间:2005-02-21 20:26:44 0 删除 编辑

第十三章

在ORACLE9I中,通过利用自动撤销表空间来代替回退段,可以由ORACLE自动对撤销空间进行管理,这称为“自动撤销管理方式”。

[@more@]

撤销空间是专门的存储空间,用来保存撤销记录(回退记录),利用“撤销表空间”,DBA能够精确控制撤销记录在被覆盖前保留的时间,这称为“自动撤销管理”。相对的,利用回退段的旧的撤销空间管理方式被称为“手工撤销管理”。

通过使用撤销技术,能够为ORACLE数据库实现的功能:1、使用ROLLBACK语句撤销事务。2、进行数据库恢复。3、提供数据的读一致性。

 自动撤销管理方式也称为“SMU方式”,即System Managed Undo,而手工撤销管理方式也称为“RBU”方式,即Rollback Segments Undo。

在ORACLE9I中,无论使用哪一种撤销空间管理方式,ORACLE始终会在SYSTEM表空间中建立一个SYSTEM回退段。ORACLE将利用SYSTEM回退段来存储系统事务的撤销记录。在创建数据库时,SYSTEM回退段被自动建立,DBA不需要对它进行任何维护和管理,也不能删除它。

在使用自动撤销管理方式的情况下,必须在数据库中创建一个撤销表空间,ORACLE将利用撤销表空间来保存撤销记录。

任何数据库用户都不能在撤销表空间中创建对象,在撤销表空间中只能保存撤销记录。

当一个事务成功提交之后,它的撤销记录将标记为失效,撤销表空间也是以循环方式写入,在新事务开始时有可能会覆盖已经失效的撤销记录。因此,在执行某些耗时较长的查询时,可能会由于查询所需要的撤销记录被覆盖,而无法保证读一致性,从而产生“快照太旧”错误。为了解决这个问题,在自动撤销管理方式下,DBA可以通过设置初始化参数UNDO_RETENTION显式地指定撤销记录的保留时间。

在创建数据库之后,应当立即在SYSTEM表空间中建立一个非SYSTEM回退段。因为在数据库创建后,用户需要首先创建其他的表空间和回退段。这时,这些操作的回退记录将保存在这个非SYSTEM回退段中。在其他的表空间和回退段建立完毕后,可以将SYSTEM表空间中的这个非SYSTEM回退段删除。

如果没有为数据库应用Oracle Real Application Clusters环境,只有一个实例访问数据库,则公用回退段和私有回退段是没有区别的。

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

上一篇: 今日事件
下一篇: ORACLE笔记十四
请登录后发表评论 登录
全部评论

注册时间:2010-01-31

  • 博文量
    178
  • 访问量
    5549706