Oracle - 回滚段

一直以来对回滚段的理解都不是很清晰,更谈不上深入。今天偶然在网上看到了一篇文章,比较浅显易懂地阐述了回滚段的概念,用法和规划及问题的解决,这里主要摘录一下概念部分,以及日常管理的内容和常见问题的解决,因为自Oracle9i以后回滚段默认设置由数据库自行管理了。

“回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。”

回滚段的作用:事务回滚,事务恢复,读一致性

回滚段的种类:系统回滚段,非系统回滚段(公用和私用)

前面讲到自Oracle9i以后回滚段默认设置由数据库自行管理,这大大降低了DBA的维护成本,一般不需要进行回滚段的创建、修改、删除等动作了,只要UNDOTBS1表空间能够有足够的空间就行(自动伸展);

SQL> select segment_name as seg,tablespace_name as tab from dba_rollback_segs;
SEG                            TAB
------------------------------ ------------------------------
SYSTEM                         SYSTEM
_SYSSMU1$                      UNDOTBS1
_SYSSMU2$                      UNDOTBS1
_SYSSMU3$                      UNDOTBS1
_SYSSMU4$                      UNDOTBS1
_SYSSMU5$                      UNDOTBS1
_SYSSMU6$                      UNDOTBS1
_SYSSMU7$                      UNDOTBS1
_SYSSMU8$                      UNDOTBS1
_SYSSMU9$                      UNDOTBS1
_SYSSMU10$                     UNDOTBS1
可以发现实际上在UNDOTBS1里系统先创建了一个系统回滚段(这是SYSTEM专用的),然后又创建了其它几个公用回滚段。

日常数据库管理时,可能会出现回滚段表空间数据文件丢失或损坏的情况,这里引用一篇文章解说当数据库仍然启动时,如何修复回滚段表空间:http://www.pcvz.com/Program/Database/Oracle/Oracleyy/Program_138678.html

这种情况的两种可能的解决方法:

A) 使丢失的那个数据文件 offline, 并从备份中恢复它,这种情况适用于数据库是处于归档方式的。
B) 另一个方法是 offline 掉所有的那个文件所属表空间的回滚段, drop 那个表空间 , 然后得建它们。你可能不得不杀掉那些使用着回滚段的进程,以便使它 offline.

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

转载于:http://blog.itpub.net/108247/viewspace-462898/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值